<!doctype html>
<html class="default no-js">
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>IDataFrame | Data-Forge</title>
	<meta name="description" content="">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
	<div class="tsd-page-toolbar">
		<div class="container">
			<div class="table-wrap">
				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.js" data-base="..">
					<div class="field">
						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
						<input id="tsd-search-field" type="text" />
					</div>
					<ul class="results">
						<li class="state loading">Preparing search index...</li>
						<li class="state failure">The search index is not available</li>
					</ul>
					<a href="../index.html" class="title">Data-Forge</a>
				</div>
				<div class="table-cell" id="tsd-widgets">
					<div id="tsd-filter">
						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
						<div class="tsd-filter-group">
							<div class="tsd-select" id="tsd-filter-visibility">
								<span class="tsd-select-label">All</span>
								<ul class="tsd-select-list">
									<li data-value="public">Public</li>
									<li data-value="protected">Public/Protected</li>
									<li data-value="private" class="selected">All</li>
								</ul>
							</div>
							<input type="checkbox" id="tsd-filter-inherited" checked />
							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
						</div>
					</div>
					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
				</div>
			</div>
		</div>
	</div>
	<div class="tsd-page-title">
		<div class="container">
			<ul class="tsd-breadcrumb">
				<li>
					<a href="../index.html">Globals</a>
				</li>
				<li>
					<a href="idataframe.html">IDataFrame</a>
				</li>
			</ul>
			<h1>Interface IDataFrame&lt;IndexT, ValueT&gt;</h1>
		</div>
	</div>
</header>
<div class="container container-main">
	<div class="row">
		<div class="col-8 col-content">
			<section class="tsd-panel tsd-comment">
				<div class="tsd-comment tsd-typography">
					<div class="lead">
						<p>Interface that represents a dataframe.
							A dataframe contains an indexed sequence of data records.
						Think of it as a spreadsheet or CSV file in memory.</p>
					</div>
					<p>Each data record contains multiple named fields, the value of each field represents one row in a column of data.
						Each column of data is a named <a href="../classes/series.html">Series</a>.
					You think of a dataframe a collection of named data series.</p>
				</div>
			</section>
			<section class="tsd-panel tsd-type-parameters">
				<h3>Type parameters</h3>
				<ul class="tsd-type-parameters">
					<li>
						<h4>IndexT</h4>
						<div class="tsd-comment tsd-typography">
							<div class="lead">
								<p>The type to use for the index.</p>
							</div>
						</div>
					</li>
					<li>
						<h4>ValueT</h4>
						<div class="tsd-comment tsd-typography">
							<div class="lead">
								<p>The type to use for each row/data record.</p>
							</div>
						</div>
					</li>
				</ul>
			</section>
			<section class="tsd-panel tsd-hierarchy">
				<h3>Hierarchy</h3>
				<ul class="tsd-hierarchy">
					<li>
						<span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span>
						<ul class="tsd-hierarchy">
							<li>
								<span class="target">IDataFrame</span>
								<ul class="tsd-hierarchy">
									<li>
										<a href="iordereddataframe.html" class="tsd-signature-type">IOrderedDataFrame</a>
									</li>
								</ul>
							</li>
						</ul>
					</li>
				</ul>
			</section>
			<section class="tsd-panel">
				<h3>Implemented by</h3>
				<ul class="tsd-hierarchy">
					<li><a href="../classes/dataframe.html" class="tsd-signature-type">DataFrame</a></li>
				</ul>
			</section>
			<section class="tsd-panel-group tsd-index-group">
				<h2>Index</h2>
				<section class="tsd-panel tsd-index-panel">
					<div class="tsd-index-content">
						<section class="tsd-index-section ">
							<h3>Methods</h3>
							<ul class="tsd-index-list">
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite"><a href="idataframe.html#___iterator" class="tsd-kind-icon">__@iterator</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#after" class="tsd-kind-icon">after</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#aggregate" class="tsd-kind-icon">aggregate</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#all" class="tsd-kind-icon">all</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#any" class="tsd-kind-icon">any</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#appendpair" class="tsd-kind-icon">append<wbr>Pair</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#at" class="tsd-kind-icon">at</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#bake" class="tsd-kind-icon">bake</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#before" class="tsd-kind-icon">before</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#between" class="tsd-kind-icon">between</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#bringtoback" class="tsd-kind-icon">bring<wbr>ToBack</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#bringtofront" class="tsd-kind-icon">bring<wbr>ToFront</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#cast" class="tsd-kind-icon">cast</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#concat" class="tsd-kind-icon">concat</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#count" class="tsd-kind-icon">count</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#defaultifempty" class="tsd-kind-icon">default<wbr>IfEmpty</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#deflate" class="tsd-kind-icon">deflate</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#detecttypes" class="tsd-kind-icon">detect<wbr>Types</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#detectvalues" class="tsd-kind-icon">detect<wbr>Values</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#distinct" class="tsd-kind-icon">distinct</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#dropseries" class="tsd-kind-icon">drop<wbr>Series</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#endat" class="tsd-kind-icon">end<wbr>At</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#ensureseries" class="tsd-kind-icon">ensure<wbr>Series</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#except" class="tsd-kind-icon">except</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#expectseries" class="tsd-kind-icon">expect<wbr>Series</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#fillgaps" class="tsd-kind-icon">fill<wbr>Gaps</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#filter" class="tsd-kind-icon">filter</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#first" class="tsd-kind-icon">first</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#flatmap" class="tsd-kind-icon">flat<wbr>Map</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#foreach" class="tsd-kind-icon">for<wbr>Each</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#generateseries" class="tsd-kind-icon">generate<wbr>Series</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#getcolumnnames" class="tsd-kind-icon">get<wbr>Column<wbr>Names</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#getcolumns" class="tsd-kind-icon">get<wbr>Columns</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#getindex" class="tsd-kind-icon">get<wbr>Index</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#getseries" class="tsd-kind-icon">get<wbr>Series</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#groupby" class="tsd-kind-icon">group<wbr>By</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#groupsequentialby" class="tsd-kind-icon">group<wbr>Sequential<wbr>By</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#hasseries" class="tsd-kind-icon">has<wbr>Series</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#head" class="tsd-kind-icon">head</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#inflateseries" class="tsd-kind-icon">inflate<wbr>Series</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#insertpair" class="tsd-kind-icon">insert<wbr>Pair</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#intersection" class="tsd-kind-icon">intersection</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#join" class="tsd-kind-icon">join</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#joinouter" class="tsd-kind-icon">join<wbr>Outer</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#joinouterleft" class="tsd-kind-icon">join<wbr>Outer<wbr>Left</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#joinouterright" class="tsd-kind-icon">join<wbr>Outer<wbr>Right</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#last" class="tsd-kind-icon">last</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#map" class="tsd-kind-icon">map</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#melt" class="tsd-kind-icon">melt</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#merge" class="tsd-kind-icon">merge</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#none" class="tsd-kind-icon">none</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#orderby" class="tsd-kind-icon">order<wbr>By</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#orderbydescending" class="tsd-kind-icon">order<wbr>ByDescending</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#parsedates" class="tsd-kind-icon">parse<wbr>Dates</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#parsefloats" class="tsd-kind-icon">parse<wbr>Floats</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#parseints" class="tsd-kind-icon">parse<wbr>Ints</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#pivot" class="tsd-kind-icon">pivot</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#reduce" class="tsd-kind-icon">reduce</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#renameseries" class="tsd-kind-icon">rename<wbr>Series</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#reorderseries" class="tsd-kind-icon">reorder<wbr>Series</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#resetindex" class="tsd-kind-icon">reset<wbr>Index</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#reverse" class="tsd-kind-icon">reverse</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#rollingwindow" class="tsd-kind-icon">rolling<wbr>Window</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#round" class="tsd-kind-icon">round</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#select" class="tsd-kind-icon">select</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#selectmany" class="tsd-kind-icon">select<wbr>Many</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#sequentialdistinct" class="tsd-kind-icon">sequential<wbr>Distinct</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#serialize" class="tsd-kind-icon">serialize</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#setindex" class="tsd-kind-icon">set<wbr>Index</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#skip" class="tsd-kind-icon">skip</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#skipuntil" class="tsd-kind-icon">skip<wbr>Until</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#skipwhile" class="tsd-kind-icon">skip<wbr>While</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#startat" class="tsd-kind-icon">start<wbr>At</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#subset" class="tsd-kind-icon">subset</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#summarize" class="tsd-kind-icon">summarize</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#tail" class="tsd-kind-icon">tail</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#take" class="tsd-kind-icon">take</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#takeuntil" class="tsd-kind-icon">take<wbr>Until</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#takewhile" class="tsd-kind-icon">take<wbr>While</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#toarray" class="tsd-kind-icon">to<wbr>Array</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#tocsv" class="tsd-kind-icon">toCSV</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#tohtml" class="tsd-kind-icon">toHTML</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#tojson" class="tsd-kind-icon">toJSON</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#tojson5" class="tsd-kind-icon">toJSON5</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#toobject" class="tsd-kind-icon">to<wbr>Object</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#topairs" class="tsd-kind-icon">to<wbr>Pairs</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#torows" class="tsd-kind-icon">to<wbr>Rows</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#tostring" class="tsd-kind-icon">to<wbr>String</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#tostrings" class="tsd-kind-icon">to<wbr>Strings</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#transformseries" class="tsd-kind-icon">transform<wbr>Series</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#truncatestrings" class="tsd-kind-icon">truncate<wbr>Strings</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#union" class="tsd-kind-icon">union</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#variablewindow" class="tsd-kind-icon">variable<wbr>Window</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#where" class="tsd-kind-icon">where</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="idataframe.html#window" class="tsd-kind-icon">window</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#withindex" class="tsd-kind-icon">with<wbr>Index</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#withseries" class="tsd-kind-icon">with<wbr>Series</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="idataframe.html#zip" class="tsd-kind-icon">zip</a></li>
							</ul>
						</section>
					</div>
				</section>
			</section>
			<section class="tsd-panel-group tsd-member-group ">
				<h2>Methods</h2>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite">
					<a name="___iterator" class="tsd-anchor"></a>
					<h3>__@iterator</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite">
						<li class="tsd-signature tsd-kind-icon">__@iterator<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Iterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<p>Overrides Iterable.[Symbol.iterator]</p>
								<ul>
									<li>Defined in lib/dataframe.ts:298</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Get an iterator to enumerate the rows of the dataframe.
										Enumerating the iterator forces lazy evaluation to complete.
									This function is automatically called by <code>for...of</code>.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

for (const row of df) {
    // ... do something with the row ...
}
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Iterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>An iterator for the rows in the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="after" class="tsd-anchor"></a>
					<h3>after</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">after<span class="tsd-signature-symbol">(</span>indexValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1565</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Gets a new dataframe containing all rows after the specified index value (exclusive).</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const df = new DataFrame({
     index: [0, 1, 2, 3], // This is the default index.
     values: [10, 20, 30, 40],
});

const lastHalf = df.before(1);
expect(lastHalf.toArray()).to.eql([30, 40]);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const timeSeriesDf = ... a dataframe indexed by date/time ...

// Get all rows after the specified date.
const allRowsAfterStartDate = df.after(new Date(2016, 5, 4));
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>indexValue: <span class="tsd-signature-type">IndexT</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The index value after which to start the new dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe containing all rows after the specified index value.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="aggregate" class="tsd-anchor"></a>
					<h3>aggregate</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">aggregate&lt;ToT&gt;<span class="tsd-signature-symbol">(</span>seedOrSelector<span class="tsd-signature-symbol">: </span><a href="../index.html#aggregatefn" class="tsd-signature-type">AggregateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol"> | </span><a href="icolumnaggregatespec.html" class="tsd-signature-type">IColumnAggregateSpec</a>, selector<span class="tsd-signature-symbol">?: </span><a href="../index.html#aggregatefn" class="tsd-signature-type">AggregateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ToT</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1105</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Aggregate the rows in the dataframe to a single result.</p>
								</div>
								<p><code>aggregate</code> is similar to <a href="../classes/dataframe.html#reduce">DataFrame.reduce</a>  but the parameters are reversed.
								Please use <a href="../classes/dataframe.html#reduce">DataFrame.reduce</a> in preference to <code>aggregate</code>.</p>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const dailySalesDf = ... daily sales figures for the past month ...
const totalSalesForthisMonth = dailySalesDf.aggregate(
     0, // Seed - the starting value.
     (accumulator, row) => accumulator + row.SalesAmount // Aggregation function.
);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const totalSalesAllTime = 500; // We'll seed the aggregation with this value.
const dailySalesDf = ... daily sales figures for the past month ...
const updatedTotalSalesAllTime = dailySalesDf.aggregate(
     totalSalesAllTime,
     (accumulator, row) => accumulator + row.SalesAmount
);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

var salesDataSummary = salesDataDf.aggregate({
     TotalSales: df => df.count(),
     AveragePrice: df => df.deflate(row => row.Price).average(),
     TotalRevenue: df => df.deflate(row => row.Revenue).sum(),
});
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>ToT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>seedOrSelector: <a href="../index.html#aggregatefn" class="tsd-signature-type">AggregateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol"> | </span><a href="icolumnaggregatespec.html" class="tsd-signature-type">IColumnAggregateSpec</a></h5>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> selector: <a href="../index.html#aggregatefn" class="tsd-signature-type">AggregateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Function that takes the seed and then each row in the dataframe and produces the aggregate value.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ToT</span></h4>
							<p>Returns a new value that has been aggregated from the dataframe using the &#39;selector&#39; function.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="all" class="tsd-anchor"></a>
					<h3>all</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">all<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">: </span><a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1395</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Evaluates a predicate function for every row in the dataframe to determine
									if some condition is true/truthy for <strong>all</strong> rows in the dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const everyoneIsNamedFred = df.all(row => row.CustomerName === "Fred"); // Check if all customers are named Fred.
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>predicate: <a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Predicate function that receives each row. It should returns true/truthy for a match, otherwise false/falsy.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
							<p>Returns true if the predicate has returned true or truthy for every row in the dataframe, otherwise returns false. Returns false for an empty dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="any" class="tsd-anchor"></a>
					<h3>any</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">any<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">?: </span><a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1421</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Evaluates a predicate function for every row in the dataframe to determine
									if some condition is true/truthy for <strong>any</strong> of rows in the dataframe.</p>
								</div>
								<p>If no predicate is specified then it simply checks if the dataframe contains more than zero rows.</p>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const anyFreds = df.any(row => row.CustomerName === "Fred"); // Do we have any customers named Fred?
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const anyCustomers = df.any(); // Do we have any customers at all?
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> predicate: <a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional predicate function that receives each row. It should return true/truthy for a match, otherwise false/falsy.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
							<p>Returns true if the predicate has returned truthy for any row in the sequence, otherwise returns false.
								If no predicate is passed it returns true if the dataframe contains any rows at all.
							Returns false for an empty dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="appendpair" class="tsd-anchor"></a>
					<h3>append<wbr>Pair</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">append<wbr>Pair<span class="tsd-signature-symbol">(</span>pair<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2462</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Append a pair to the end of a dataframe.
									Doesn&#39;t modify the original dataframe! The returned dataframe is entirely new and contains rows from the original dataframe plus the appended pair.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const newIndex = ... index of the new row ...
const newRow = ... the new data row to append ...
const appendedDf = df.appendPair([newIndex, newRows]);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>pair: <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">]</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The index/value pair to append.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with the specified pair appended.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="at" class="tsd-anchor"></a>
					<h3>at</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">at<span class="tsd-signature-symbol">(</span>index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1290</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Get the row, if there is one, with the specified index.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const row = df.at(5); // Get the row at index 5 (with a default 0-based index).
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const date = ... some date ...
// Retreive the row with specified date from a time-series dataframe (assuming date indexed has been applied).
const row = df.at(date);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>index: <span class="tsd-signature-type">IndexT</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Index to for which to retreive the row.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ValueT</span>
								<span class="tsd-signature-symbol"> | </span>
								<span class="tsd-signature-type">undefined</span>
							</h4>
							<p>Returns the row from the specified index in the dataframe or undefined if there is no such index in the present in the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="bake" class="tsd-anchor"></a>
					<h3>bake</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">bake<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1754</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Forces lazy evaluation to complete and &#39;bakes&#39; the dataframe into memory.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const bakedDf = df.bake();
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a dataframe that has been &#39;baked&#39;, all lazy evaluation has completed.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="before" class="tsd-anchor"></a>
					<h3>before</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">before<span class="tsd-signature-symbol">(</span>indexValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1535</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Gets a new dataframe containing all rows up to the specified index value (exclusive).</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const df = new DataFrame({
     index: [0, 1, 2, 3], // This is the default index.
     values: [10, 20, 30, 40],
});

const firstHalf = df.before(2);
expect(firstHalf.toArray()).to.eql([10, 20]);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const timeSeriesDf = ... a dataframe indexed by date/time ...

// Get all rows before the specified date.
const allRowsBeforeEndDate = df.before(new Date(2016, 5, 4));
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>indexValue: <span class="tsd-signature-type">IndexT</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The index value at which to end the new dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe containing all rows up to (but not including) the specified index value.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="between" class="tsd-anchor"></a>
					<h3>between</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">between<span class="tsd-signature-symbol">(</span>startIndexValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IndexT</span>, endIndexValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1596</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Gets a new dataframe containing all rows between the specified index values (inclusive).</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const df = new DataFrame({
     index: [0, 1, 2, 3, 4, 6], // This is the default index.
     values: [10, 20, 30, 40, 50, 60],
});

const middleSection = df.between(1, 4);
expect(middleSection.toArray()).to.eql([20, 30, 40, 50]);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const timeSeriesDf = ... a dataframe indexed by date/time ...

// Get all rows between the start and end dates (inclusive).
const allRowsBetweenDates = df.after(new Date(2016, 5, 4), new Date(2016, 5, 22));
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>startIndexValue: <span class="tsd-signature-type">IndexT</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The index at which to start the new dataframe.</p>
									</div>
								</li>
								<li>
									<h5>endIndexValue: <span class="tsd-signature-type">IndexT</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The index at which to end the new dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe containing all values between the specified index values (inclusive).</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="bringtoback" class="tsd-anchor"></a>
					<h3>bring<wbr>ToBack</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">bring<wbr>ToBack<span class="tsd-signature-symbol">(</span>columnOrColumns<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:662</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Bring the column(s) with specified name(s) to the back of the column order, making it (or them) the last column(s) in the output dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>
const modifiedDf = df.bringToBack("NewLastColumn");
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>
const modifiedDf = df.bringToBack(["NewSecondLastColumn, ""NewLastColumn"]);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnOrColumns: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Specifies the column or columns to bring to the back.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with 1 or more columns bought to the back of the column ordering.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="bringtofront" class="tsd-anchor"></a>
					<h3>bring<wbr>ToFront</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">bring<wbr>ToFront<span class="tsd-signature-symbol">(</span>columnOrColumns<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:643</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Bring the column(s) with specified name(s) to the front of the column order, making it (or them) the first column(s) in the output dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>
const modifiedDf = df.bringToFront("NewFirstColumn");
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>
const modifiedDf = df.bringToFront(["NewFirstColumn", "NewSecondColumn"]);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnOrColumns: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Specifies the column or columns to bring to the front.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with 1 or more columns bought to the front of the column ordering.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="cast" class="tsd-anchor"></a>
					<h3>cast</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">cast&lt;NewValueT&gt;<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:344</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Cast the value of the dataframe to a new type.
									This operation has no effect but to retype the r9ws that the dataframe contains.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const castDf = df.cast<SomeOtherType>();
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>NewValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>The same dataframe, but with the type changed.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="concat" class="tsd-anchor"></a>
					<h3>concat</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">concat<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>dataframes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1886</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Concatenate multiple other dataframes onto this dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const concatenated = a.concat(b);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const concatenated = a.concat(b, c);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const concatenated = a.concat([b, c]);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const concatenated = a.concat(b, [c, d]);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const otherDfs = [... array of dataframes...];
const concatenated = a.concat(otherDfs);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>dataframes: <span class="tsd-signature-symbol">(</span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Multiple arguments. Each can be either a dataframe or an array of dataframes.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a single dataframe concatenated from multiple input dataframes.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="count" class="tsd-anchor"></a>
					<h3>count</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">count<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1241</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Count the number of rows in the dataframe</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const numRows = df.count();
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
							<p>Returns the count of all rows.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="defaultifempty" class="tsd-anchor"></a>
					<h3>default<wbr>IfEmpty</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">default<wbr>IfEmpty<span class="tsd-signature-symbol">(</span>defaultSequence<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2521</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Returns the specified default dataframe if the input dataframe is empty.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const emptyDataFrame = new DataFrame();
const defaultDataFrame = new DataFrame([ { A: 1 }, { A: 2 }, { A: 3 } ]);
expect(emptyDataFrame.defaultIfEmpty(defaultDataFrame)).to.eql(defaultDataFrame);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const nonEmptyDataFrame = new DataFrame([ { A: 100 }]);
const defaultDataFrame = new DataFrame([ { A: 1 }, { A: 2 }, { A: 3 } ]);
expect(nonEmptyDataFrame.defaultIfEmpty(defaultDataFrame)).to.eql(nonEmptyDataFrame);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>defaultSequence: <span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Default dataframe to return if the input dataframe is empty.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns &#39;defaultSequence&#39; if the input dataframe is empty.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="deflate" class="tsd-anchor"></a>
					<h3>deflate</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">deflate&lt;ToT&gt;<span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">?: </span><a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:946</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Converts (deflates) a dataframe to a <a href="../classes/series.html">Series</a>.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const series = df.deflate(); // Deflate to a series of object.
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const series = df.deflate(row => row.SomeColumn); // Extract a particular column.
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>ToT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> selector: <a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional user-defined selector function that transforms each row to produce the series.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a series that was created from the original dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="detecttypes" class="tsd-anchor"></a>
					<h3>detect<wbr>Types</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">detect<wbr>Types<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="itypefrequency.html" class="tsd-signature-type">ITypeFrequency</a><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2537</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Detect the the frequency of the types of the values in the dataframe.
									This is a good way to understand the shape of your data.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const df = dataForge.readFileSync("./my-data.json").parseJSON();
const dataTypes = df.detectTypes();
console.log(dataTypes.toString());
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="itypefrequency.html" class="tsd-signature-type">ITypeFrequency</a><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a dataframe with rows that confirm to <a href="itypefrequency.html">ITypeFrequency</a> that describes the data types contained in the original dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="detectvalues" class="tsd-anchor"></a>
					<h3>detect<wbr>Values</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">detect<wbr>Values<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="ivaluefrequency.html" class="tsd-signature-type">IValueFrequency</a><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2553</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Detect the frequency of the values in the dataframe.
									This is a good way to understand the shape of your data.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const df = dataForge.readFileSync("./my-data.json").parseJSON();
const dataValues = df.detectValues();
console.log(dataValues.toString());
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="ivaluefrequency.html" class="tsd-signature-type">IValueFrequency</a><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a dataframe with rows that conform to <a href="ivaluefrequency.html">IValueFrequency</a> that describes the values contained in the original dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="distinct" class="tsd-anchor"></a>
					<h3>distinct</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">distinct&lt;ToT&gt;<span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">?: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1794</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Returns only the set of rows in the dataframe that are distinct according to some criteria.
									This can be used to remove duplicate rows from the dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

// Remove duplicate rows by customer id. Will return only a single row per customer.
const distinctCustomers = salesDf.distinct(sale => sale.CustomerId);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>
// Remove duplicate rows across mutliple columns
const safeJoinChar = '$';
const distinctCustomers = salesDf.distinct(sale => [sale.CustomerId, sale.MonthOfYear].join(safeJoinChar));
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>ToT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> selector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that specifies the criteria used to make comparisons for duplicate rows.
											Note that the selector determines the object used for the comparison.  If the selector returns a new instance of an array or a
										javascript object, distinct will always include all rows since the object instances are different even if the members are the same.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a dataframe containing only unique values as determined by the &#39;selector&#39; function.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="dropseries" class="tsd-anchor"></a>
					<h3>drop<wbr>Series</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">drop<wbr>Series&lt;NewValueT&gt;<span class="tsd-signature-symbol">(</span>columnOrColumns<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:609</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Create a new dataframe with the requested column or columns dropped.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>
const modifiedDf = df.dropSeries("SomeColumn");
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>
const modifiedDf = df.dropSeries(["ColumnA", "ColumnB"]);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>NewValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnOrColumns: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Specifies the column name (a string) or columns (array of strings) to drop.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with a particular named column or columns removed.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="endat" class="tsd-anchor"></a>
					<h3>end<wbr>At</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">end<wbr>At<span class="tsd-signature-symbol">(</span>indexValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1505</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Gets a new dataframe containing all rows up until and including the specified index value (inclusive).</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const df = new DataFrame({
     index: [0, 1, 2, 3], // This is the default index.
     values: [10, 20, 30, 40],
});

const firstHalf = df.endAt(1);
expect(firstHalf.toArray()).to.eql([10, 20]);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const timeSeriesDf = ... a dataframe indexed by date/time ...

// Get all rows ending at a particular date.
const allRowsUpToAndIncludingTheExactEndDate = df.endAt(new Date(2016, 5, 4));
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>indexValue: <span class="tsd-signature-type">IndexT</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The index value at which to end the new dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe containing all rows up until and including the specified index value.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="ensureseries" class="tsd-anchor"></a>
					<h3>ensure<wbr>Series</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">ensure<wbr>Series&lt;SeriesValueT&gt;<span class="tsd-signature-symbol">(</span>columnNameOrSpec<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><a href="icolumngenspec.html" class="tsd-signature-type">IColumnGenSpec</a>, series<span class="tsd-signature-symbol">?: </span><a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SeriesValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><a href="../index.html#seriesselectorfn" class="tsd-signature-type">SeriesSelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SeriesValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:576</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Add a series to the dataframe, but only if it doesn&#39;t already exist.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const updatedDf = df.ensureSeries("ANewColumn", new Series([1, 2, 3]));
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const updatedDf = df.ensureSeries("ANewColumn", df =>
     df.getSeries("AnExistingSeries").select(aTransformation)
);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const modifiedDf = df.ensureSeries({
     ANewColumn: new Series([1, 2, 3]),
     SomeOtherColumn: new Series([10, 20, 30])
});
<pre>
</dd>
                        <dt>example</dt>
                        <dd><pre>

const modifiedDf = df.ensureSeries({
     ANewColumn: df => df.getSeries("SourceData").select(aTransformation))
});
<pre>
</dd>
                </dl>
        </div>

    <h4 class="tsd-type-parameters-title">Type parameters</h4>
    <ul class="tsd-type-parameters">
        <li>
            <h4>SeriesValueT</h4>
                    </li>
</ul>
    <h4 class="tsd-parameters-title">Parameters</h4>
    <ul class="tsd-parameters">
            <li>
                <h5>columnNameOrSpec: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><a href="icolumngenspec.html" class="tsd-signature-type">IColumnGenSpec</a></h5>

                        <div class="tsd-comment tsd-typography">
                <p>The name of the series to add or a <a href="icolumngenspec.html">IColumnGenSpec</a> that specifies the columns to add.</p>

        </div>

            </li>
            <li>
                <h5><span class="tsd-flag ts-flagOptional">Optional</span> series: <a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SeriesValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><a href="../index.html#seriesselectorfn" class="tsd-signature-type">SeriesSelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SeriesValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>

                        <div class="tsd-comment tsd-typography">
                <p>If columnNameOrSpec is a string that specifies the name of the series to add, this specifies the actual <a href="../classes/series.html">Series</a> to add or a selector that generates the series given the dataframe.</p>

        </div>

            </li>
    </ul>

    <h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>

        <p>Returns a new dataframe with the specified series added, if the series didn&#39;t already exist. Otherwise if the requested series already exists the same dataframe is returned.</p>


        </li>
</ul>    

</section>
                <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
    <a name="except" class="tsd-anchor"></a>
        <h3>except</h3>

        <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
        <li class="tsd-signature tsd-kind-icon">except&lt;InnerIndexT, InnerValueT, KeyT&gt;<span class="tsd-signature-symbol">(</span>inner<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">&gt;</span>, outerSelector<span class="tsd-signature-symbol">?: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span>, innerSelector<span class="tsd-signature-symbol">?: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>

<ul class="tsd-descriptions">
        <li class="tsd-description">
                <aside class="tsd-sources">
        <ul>
                    <li>Defined in lib/dataframe.ts:2074</li>
        </ul>
</aside>
        <div class="tsd-comment tsd-typography">
                <div class="lead">
                    <p>Creates a new dataframe by merging two input dataframes.
The resulting dataframe contains only the rows from the 1st dataframe that don&#39;t appear in the 2nd dataframe.
This is essentially subtracting the rows from the 2nd dataframe from the 1st and creating a new dataframe with the remaining rows.</p>

                </div>
                <dl class="tsd-comment-tags">
                        <dt>example</dt>
                        <dd><pre>

const dfA = ...
const dfB = ...
const remainingDf = dfA.except(dfB);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

// Find the list of customers haven't bought anything recently.
const allCustomers = ... list of all customers ...
const recentCustomers = ... list of customers who have purchased recently ...
const remainingCustomers = allCustomers.except(
     recentCustomers,
     customerRecord => customerRecord.CustomerId
);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>InnerIndexT</h4>
								</li>
								<li>
									<h4>InnerValueT</h4>
								</li>
								<li>
									<h4>KeyT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>inner: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The inner dataframe to merge (the dataframe you call the function on is the &#39;outer&#39; dataframe).</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> outerSelector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional user-defined selector function that selects the key from the outer dataframe that is used to match the two dataframes.</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> innerSelector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional user-defined selector function that selects the key from the inner dataframe that is used to match the two dataframes.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe that contains only the rows from the 1st dataframe that don&#39;t appear in the 2nd dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="expectseries" class="tsd-anchor"></a>
					<h3>expect<wbr>Series</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">expect<wbr>Series&lt;SeriesValueT&gt;<span class="tsd-signature-symbol">(</span>columnName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SeriesValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:472</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Verify the existence of a name column and extracts the <a href="../classes/series.html">Series</a> for it.
									Throws an exception if the requested column doesn&#39;t exist.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

try {
     const series = df.expectSeries("SomeColumn");
     // ... do something with the series ...
}
catch (err) {
     // ... the dataframe doesn't contain the column "SomeColumn" ...
}
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>SeriesValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnName: <span class="tsd-signature-type">string</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Name of the column to extract.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SeriesValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns the <a href="../classes/series.html">Series</a> for the column if it exists, otherwise it throws an exception.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="fillgaps" class="tsd-anchor"></a>
					<h3>fill<wbr>Gaps</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">fill<wbr>Gaps<span class="tsd-signature-symbol">(</span>comparer<span class="tsd-signature-symbol">: </span><a href="../index.html#comparerfn" class="tsd-signature-type">ComparerFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span>, generator<span class="tsd-signature-symbol">: </span><a href="../index.html#gapfillfn" class="tsd-signature-type">GapFillFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2496</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Fill gaps in a dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

  var sequenceWithGaps = ...

 // Predicate that determines if there is a gap.
 var gapExists = (pairA, pairB) => {
     // Returns true if there is a gap.
     return true;
 };

 // Generator function that produces new rows to fill the game.
 var gapFiller = (pairA, pairB) => {
     // Create an array of index, value pairs that fill the gaps between pairA and pairB.
     return [
         newPair1,
         newPair2,
         newPair3,
     ];
 };

 var sequenceWithoutGaps = sequenceWithGaps.fillGaps(gapExists, gapFiller);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>comparer: <a href="../index.html#comparerfn" class="tsd-signature-type">ComparerFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined comparer function that is passed pairA and pairB, two consecutive rows, return truthy if there is a gap between the rows, or falsey if there is no gap.</p>
									</div>
								</li>
								<li>
									<h5>generator: <a href="../index.html#gapfillfn" class="tsd-signature-type">GapFillFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined generator function that is passed pairA and pairB, two consecutive rows, returns an array of pairs that fills the gap between the rows.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with gaps filled in.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="filter" class="tsd-anchor"></a>
					<h3>filter</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">filter<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">: </span><a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1362</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Filter the dataframe through a user-defined predicate function.</p>
								</div>
								<p>This is the same concept as the JavaScript function <code>Array.filter</code> but filters a dataframe rather than an array.</p>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

// Filter so we only have sales figures greater than 100.
const filtered = dataframe.filter(row => row.salesFigure > 100);
console.log(filtered.toArray());
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>predicate: <a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Predicate function to filter values from the dataframe. Returns true/truthy to keep elements, or false/falsy to omit elements.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe containing only the values from the original dataframe that matched the predicate.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="first" class="tsd-anchor"></a>
					<h3>first</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">first<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ValueT</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1254</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Get the first row of the dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const firstRow = df.first();
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ValueT</span></h4>
							<p>Returns the first row of the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="flatmap" class="tsd-anchor"></a>
					<h3>flat<wbr>Map</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">flat<wbr>Map&lt;ToT&gt;<span class="tsd-signature-symbol">(</span>transformer<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:860</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Transforms and flattens an input dataframe, generating a new dataframe.
									The transformer function is called for each value in the input dataframe and produces an array that is then flattened into the generated dataframe.</p>
								</div>
								<p>This is the same concept as the JavaScript function <code>Array.flatMap</code> but maps over a dataframe rather than an array.</p>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

function transformer (input) {
     const output = [];
     while (someCondition) {
         // ... generate zero or more outputs from a single input ...
         output.push(... some generated value ...);
     }
     return output;
}

const transformed = dataframe.flatMap(transformer);
console.log(transformed.toString());
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>ToT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>transformer: <a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>A user-defined function that transforms each value into an array that is then flattened into the generated dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe generated by calling the transformer function over each element of the input.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="foreach" class="tsd-anchor"></a>
					<h3>for<wbr>Each</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">for<wbr>Each<span class="tsd-signature-symbol">(</span>callback<span class="tsd-signature-symbol">: </span><a href="../index.html#callbackfn" class="tsd-signature-type">CallbackFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1379</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Invoke a callback function for each row in the dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

df.forEach(row => {
     // ... do something with the row ...
});
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>callback: <a href="../index.html#callbackfn" class="tsd-signature-type">CallbackFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The calback function to invoke for each row.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns the original dataframe with no modifications.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="generateseries" class="tsd-anchor"></a>
					<h3>generate<wbr>Series</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">generate<wbr>Series&lt;NewValueT&gt;<span class="tsd-signature-symbol">(</span>generator<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><a href="icolumntransformspec.html" class="tsd-signature-type">IColumnTransformSpec</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:925</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Generate new columns based on existing rows.</p>
								</div>
								<p>This is equivalent to calling <a href="idataframe.html#select">select</a> to transform the original dataframe to a new dataframe with different column,
								then using <a href="idataframe.html#withseries">withSeries</a> to merge each the of both the new and original dataframes.</p>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

function produceNewColumns (inputRow) {
     const newColumns = {
         // ... specify new columns and their values based on the input row ...
     };

     return newColumns;
};

const dfWithNewSeries = df.generateSeries(row => produceNewColumns(row));
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const dfWithNewSeries = df.generateSeries({
     NewColumnA: row => produceNewColumnA(row),
     NewColumnB: row => produceNewColumnB(row),
})
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>NewValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>generator: <a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><a href="icolumntransformspec.html" class="tsd-signature-type">IColumnTransformSpec</a></h5>
									<div class="tsd-comment tsd-typography">
										<p>Generator function that transforms each row to produce 1 or more new columns.
										Or use a column spec that has fields for each column, the fields specify a generate function that produces the value for each new column.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with 1 or more new columns.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="getcolumnnames" class="tsd-anchor"></a>
					<h3>get<wbr>Column<wbr>Names</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">get<wbr>Column<wbr>Names<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:311</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Get the names of the columns in the dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

console.log(df.getColumnNames());
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h4>
							<p>Returns an array of the column names in the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="getcolumns" class="tsd-anchor"></a>
					<h3>get<wbr>Columns</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">get<wbr>Columns<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="icolumn.html" class="tsd-signature-type">IColumn</a><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:330</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Retreive the collection of all columns in the dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

for (const column in df.getColumns()) {
     console.log("Column name: ");
     console.log(column.name);

     console.log("Data:");
     console.log(column.series.toArray());
}
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="icolumn.html" class="tsd-signature-type">IColumn</a><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a <a href="../classes/series.html">Series</a> containing the names of the columns in the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="getindex" class="tsd-anchor"></a>
					<h3>get<wbr>Index</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">get<wbr>Index<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="iindex.html" class="tsd-signature-type">IIndex</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:357</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Get the index for the dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const index = df.getIndex();
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <a href="iindex.html" class="tsd-signature-type">IIndex</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>The <a href="../classes/index.html">Index</a> for the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="getseries" class="tsd-anchor"></a>
					<h3>get<wbr>Series</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">get<wbr>Series&lt;SeriesValueT&gt;<span class="tsd-signature-symbol">(</span>columnName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SeriesValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:433</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Extract a <a href="../classes/series.html">Series</a> from a named column in the dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const series = df.getSeries("SomeColumn");
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>SeriesValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnName: <span class="tsd-signature-type">string</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Specifies the name of the column that contains the <a href="../classes/series.html">Series</a> to retreive.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SeriesValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns the <a href="../classes/series.html">Series</a> extracted from the named column in the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="groupby" class="tsd-anchor"></a>
					<h3>group<wbr>By</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">group<wbr>By&lt;GroupT&gt;<span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">GroupT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1816</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Collects rows in the dataframe into a <a href="../classes/series.html">Series</a> of groups according to a user-defined selector function.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const salesDf = ... product sales ...
const salesByProduct = salesDf.groupBy(sale => sale.ProductId);
for (const productSalesGroup of salesByProduct) {
     // ... do something with each product group ...
     const productId = productSalesGroup.first().ProductId;
     const totalSalesForProduct = productSalesGroup.deflate(sale => sale.Amount).sum();
     console.log(totalSalesForProduct);
}
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>GroupT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>selector: <a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">GroupT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that specifies the criteria to group by.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a <a href="../classes/series.html">Series</a> of groups. Each group is a dataframe with rows that have been grouped by the &#39;selector&#39; function.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="groupsequentialby" class="tsd-anchor"></a>
					<h3>group<wbr>Sequential<wbr>By</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">group<wbr>Sequential<wbr>By&lt;GroupT&gt;<span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">?: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">GroupT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1846</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Collects values in the series into a new series of groups based on if the values are the same or according to a user-defined selector function.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

// Some ultra simple stock trading strategy backtesting...
const dailyStockPriceDf = ... daily stock price for a company ...
const priceGroups  = dailyStockPriceDf.groupBy(day => day.close > day.movingAverage);
for (const priceGroup of priceGroups) {
     // ... do something with each stock price group ...

     const firstDay = priceGroup.first();
     if (firstDay.close > movingAverage) {
         // This group of days has the stock price above its moving average.
         // ... maybe enter a long trade here ...
     }
     else {
         // This group of days has the stock price below its moving average.
         // ... maybe enter a short trade here ...
     }
}
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>GroupT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> selector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">GroupT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional selector that specifies the criteria for grouping.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a <a href="../classes/series.html">Series</a> of groups. Each group is a dataframe with rows that are the same or have been grouped by the &#39;selector&#39; function.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="hasseries" class="tsd-anchor"></a>
					<h3>has<wbr>Series</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">has<wbr>Series<span class="tsd-signature-symbol">(</span>columnName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:450</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Determine if the dataframe contains a <a href="../classes/series.html">Series</a> the specified named column.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

if (df.hasSeries("SomeColumn")) {
     // ... the dataframe contains a series with the specified column name ...
}
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnName: <span class="tsd-signature-type">string</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Name of the column to check for.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
							<p>Returns true if the dataframe contains the requested <a href="../classes/series.html">Series</a>, otherwise returns false.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="head" class="tsd-anchor"></a>
					<h3>head</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">head<span class="tsd-signature-symbol">(</span>numValues<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1306</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Get X rows from the start of the dataframe.
									Pass in a negative value to get all rows at the head except for X rows at the tail.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>examples</dt>
									<dd><pre>

const sample = df.head(10); // Take a sample of 10 rows from the start of the dataframe.
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>numValues: <span class="tsd-signature-type">number</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Number of rows to take.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe that has only the specified number of rows taken from the start of the original dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="inflateseries" class="tsd-anchor"></a>
					<h3>inflate<wbr>Series</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">inflate<wbr>Series&lt;NewValueT&gt;<span class="tsd-signature-symbol">(</span>columnName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, selector<span class="tsd-signature-symbol">?: </span><a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:974</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Inflate a named <a href="../classes/series.html">Series</a> in the dataframe to 1 or more new series in the new dataframe.</p>
								</div>
								<p>This is the equivalent of extracting the series using <a href="idataframe.html#getseries">getSeries</a>, transforming them with <a href="../classes/series.html#select">Series.select</a>
									and then running <a href="../classes/series.html#inflate">Series.inflate</a> to create a new dataframe, then merging each column of the new dataframe
								into the original dataframe using <a href="idataframe.html#withseries">withSeries</a>.</p>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

function newColumnGenerator (row) {
     const newColumns = {
         // ... create 1 field per new column ...
     };

     return row;
}

const dfWithNewSeries = df.inflateSeries("SomeColumn", newColumnGenerator);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>NewValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnName: <span class="tsd-signature-type">string</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Name of the series to inflate.</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> selector: <a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional selector function that transforms each value in the column to new columns. If not specified it is expected that each value in the column is an object whose fields define the new column names.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with a column inflated to 1 or more new columns.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="insertpair" class="tsd-anchor"></a>
					<h3>insert<wbr>Pair</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">insert<wbr>Pair<span class="tsd-signature-symbol">(</span>pair<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2444</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Insert a pair at the start of the dataframe.
									Doesn&#39;t modify the original dataframe! The returned dataframe is entirely new and contains rows from the original dataframe plus the inserted pair.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const newIndex = ... index of the new row ...
const newRow = ... the new data row to insert ...
const insertedDf = df.insertPair([newIndex, newRows]);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>pair: <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">]</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The index/value pair to insert.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with the specified pair inserted.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="intersection" class="tsd-anchor"></a>
					<h3>intersection</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">intersection&lt;InnerIndexT, InnerValueT, KeyT&gt;<span class="tsd-signature-symbol">(</span>inner<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">&gt;</span>, outerSelector<span class="tsd-signature-symbol">?: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span>, innerSelector<span class="tsd-signature-symbol">?: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2037</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Creates a new dataframe by merging two input dataframes.
										The resulting dataframe contains the intersection of rows from the two input dataframes.
									These are only the rows that appear in both dataframes.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const dfA = ...
const dfB = ...
const mergedDf = dfA.intersection(dfB);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

// Merge two sets of customer records to find only the
// customers that appears in both.
const customerRecordsA = ...
const customerRecordsB = ...
const intersectionOfCustomerRecords = customerRecordsA.intersection(
     customerRecordsB,
     customerRecord => customerRecord.CustomerId
);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>InnerIndexT</h4>
								</li>
								<li>
									<h4>InnerValueT</h4>
								</li>
								<li>
									<h4>KeyT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>inner: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The inner dataframe to merge (the dataframe you call the function on is the &#39;outer&#39; dataframe).</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> outerSelector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional user-defined selector function that selects the key from the outer dataframe that is used to match the two dataframes.</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> innerSelector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional user-defined selector function that selects the key from the inner dataframe that is used to match the two dataframes.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe that contains the intersection of rows from the two input dataframes.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="join" class="tsd-anchor"></a>
					<h3>join</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">join&lt;KeyT, InnerIndexT, InnerValueT, ResultValueT&gt;<span class="tsd-signature-symbol">(</span>inner<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">&gt;</span>, outerKeySelector<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span>, innerKeySelector<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span>, resultSelector<span class="tsd-signature-symbol">: </span><a href="../index.html#joinfn" class="tsd-signature-type">JoinFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2110</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Creates a new dataframe by merging two input dataframes.
									The resulting dataframe contains only those rows that have matching keys in both input dataframes.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

// Join together two sets of customers to find those
// that have bought both product A and product B.
const customerWhoBoughtProductA = ...
const customerWhoBoughtProductB = ...
const customersWhoBoughtBothProductsDf = customerWhoBoughtProductA.join(
         customerWhoBoughtProductB,
         customerA => customerA.CustomerId, // Join key.
         customerB => customerB.CustomerId, // Join key.
         (customerA, customerB) => {
             return {
                 // ... merge the results ...
             };
         }
     );
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>KeyT</h4>
								</li>
								<li>
									<h4>InnerIndexT</h4>
								</li>
								<li>
									<h4>InnerValueT</h4>
								</li>
								<li>
									<h4>ResultValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>inner: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The &#39;inner&#39; dataframe to join (the dataframe you are callling the function on is the &#39;outer&#39; dataframe).</p>
									</div>
								</li>
								<li>
									<h5>outerKeySelector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that chooses the join key from the outer dataframe.</p>
									</div>
								</li>
								<li>
									<h5>innerKeySelector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that chooses the join key from the inner dataframe.</p>
									</div>
								</li>
								<li>
									<h5>resultSelector: <a href="../index.html#joinfn" class="tsd-signature-type">JoinFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined function that merges outer and inner values.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns the new merged dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="joinouter" class="tsd-anchor"></a>
					<h3>join<wbr>Outer</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">join<wbr>Outer&lt;KeyT, InnerIndexT, InnerValueT, ResultValueT&gt;<span class="tsd-signature-symbol">(</span>inner<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">&gt;</span>, outerKeySelector<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span>, innerKeySelector<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span>, resultSelector<span class="tsd-signature-symbol">: </span><a href="../index.html#joinfn" class="tsd-signature-type">JoinFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2151</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Creates a new dataframe by merging two input dataframes.
									The resulting dataframe contains only those rows that are only present in one or the other of the dataframes, or both.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

// Join together two sets of customers to find those
// that have bought either product A or product B, or both.
const customerWhoBoughtProductA = ...
const customerWhoBoughtProductB = ...
const customersWhoBoughtEitherProductButNotBothDf = customerWhoBoughtProductA.joinOuter(
         customerWhoBoughtProductB,
         customerA => customerA.CustomerId, // Join key.
         customerB => customerB.CustomerId, // Join key.
         (customerA, customerB) => {
             return {
                 // ... merge the results ...
             };
         }
     );
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>KeyT</h4>
								</li>
								<li>
									<h4>InnerIndexT</h4>
								</li>
								<li>
									<h4>InnerValueT</h4>
								</li>
								<li>
									<h4>ResultValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>inner: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The &#39;inner&#39; dataframe to join (the dataframe you are callling the function on is the &#39;outer&#39; dataframe).</p>
									</div>
								</li>
								<li>
									<h5>outerKeySelector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that chooses the join key from the outer dataframe.</p>
									</div>
								</li>
								<li>
									<h5>innerKeySelector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that chooses the join key from the inner dataframe.</p>
									</div>
								</li>
								<li>
									<h5>resultSelector: <a href="../index.html#joinfn" class="tsd-signature-type">JoinFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined function that merges outer and inner values.</p>
										<p>Implementation from here:</p>
										<pre><code>http:<span class="hljs-regexp">//</span>blogs.geniuscode.net<span class="hljs-regexp">/RyanDHatch/</span>?p=<span class="hljs-number">116</span></code></pre>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns the new merged dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="joinouterleft" class="tsd-anchor"></a>
					<h3>join<wbr>Outer<wbr>Left</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">join<wbr>Outer<wbr>Left&lt;KeyT, InnerIndexT, InnerValueT, ResultValueT&gt;<span class="tsd-signature-symbol">(</span>inner<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">&gt;</span>, outerKeySelector<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span>, innerKeySelector<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span>, resultSelector<span class="tsd-signature-symbol">: </span><a href="../index.html#joinfn" class="tsd-signature-type">JoinFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2192</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Creates a new dataframe by merging two input dataframes.
									The resulting dataframe contains only those rows that are present either in both dataframes or only in the outer (left) dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

// Join together two sets of customers to find those
// that have bought either just product A or both product A and product B.
const customerWhoBoughtProductA = ...
const customerWhoBoughtProductB = ...
const boughtJustAorAandB = customerWhoBoughtProductA.joinOuterLeft(
         customerWhoBoughtProductB,
         customerA => customerA.CustomerId, // Join key.
         customerB => customerB.CustomerId, // Join key.
         (customerA, customerB) => {
             return {
                 // ... merge the results ...
             };
         }
     );
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>KeyT</h4>
								</li>
								<li>
									<h4>InnerIndexT</h4>
								</li>
								<li>
									<h4>InnerValueT</h4>
								</li>
								<li>
									<h4>ResultValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>inner: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The &#39;inner&#39; dataframe to join (the dataframe you are callling the function on is the &#39;outer&#39; dataframe).</p>
									</div>
								</li>
								<li>
									<h5>outerKeySelector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that chooses the join key from the outer dataframe.</p>
									</div>
								</li>
								<li>
									<h5>innerKeySelector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that chooses the join key from the inner dataframe.</p>
									</div>
								</li>
								<li>
									<h5>resultSelector: <a href="../index.html#joinfn" class="tsd-signature-type">JoinFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined function that merges outer and inner values.</p>
										<p>Implementation from here:</p>
										<pre><code>http:<span class="hljs-regexp">//</span>blogs.geniuscode.net<span class="hljs-regexp">/RyanDHatch/</span>?p=<span class="hljs-number">116</span></code></pre>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns the new merged dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="joinouterright" class="tsd-anchor"></a>
					<h3>join<wbr>Outer<wbr>Right</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">join<wbr>Outer<wbr>Right&lt;KeyT, InnerIndexT, InnerValueT, ResultValueT&gt;<span class="tsd-signature-symbol">(</span>inner<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">&gt;</span>, outerKeySelector<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span>, innerKeySelector<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span>, resultSelector<span class="tsd-signature-symbol">: </span><a href="../index.html#joinfn" class="tsd-signature-type">JoinFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2233</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Creates a new dataframe by merging two input dataframes.
									The resulting dataframe contains only those rows that are present either in both dataframes or only in the inner (right) dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

// Join together two sets of customers to find those
// that have bought either just product B or both product A and product B.
const customerWhoBoughtProductA = ...
const customerWhoBoughtProductB = ...
const boughtJustAorAandB = customerWhoBoughtProductA.joinOuterRight(
         customerWhoBoughtProductB,
         customerA => customerA.CustomerId, // Join key.
         customerB => customerB.CustomerId, // Join key.
         (customerA, customerB) => {
             return {
                 // ... merge the results ...
             };
         }
     );
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>KeyT</h4>
								</li>
								<li>
									<h4>InnerIndexT</h4>
								</li>
								<li>
									<h4>InnerValueT</h4>
								</li>
								<li>
									<h4>ResultValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>inner: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The &#39;inner&#39; dataframe to join (the dataframe you are callling the function on is the &#39;outer&#39; dataframe).</p>
									</div>
								</li>
								<li>
									<h5>outerKeySelector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that chooses the join key from the outer dataframe.</p>
									</div>
								</li>
								<li>
									<h5>innerKeySelector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that chooses the join key from the inner dataframe.</p>
									</div>
								</li>
								<li>
									<h5>resultSelector: <a href="../index.html#joinfn" class="tsd-signature-type">JoinFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">InnerValueT</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined function that merges outer and inner values.</p>
										<p>Implementation from here:</p>
										<pre><code>http:<span class="hljs-regexp">//</span>blogs.geniuscode.net<span class="hljs-regexp">/RyanDHatch/</span>?p=<span class="hljs-number">116</span></code></pre>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns the new merged dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="last" class="tsd-anchor"></a>
					<h3>last</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">last<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ValueT</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1267</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Get the last row of the dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const lastRow = df.last();
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ValueT</span></h4>
							<p>Returns the last row of the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="map" class="tsd-anchor"></a>
					<h3>map</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">map&lt;ToT&gt;<span class="tsd-signature-symbol">(</span>transformer<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:802</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Transforms an input dataframe, generating a new dataframe.
									The transformer function is called for each element of the input and the collection of outputs creates the generated datafarme.</p>
								</div>
								<p>This is the same concept as the JavaScript function <code>Array.map</code> but maps over a dataframe rather than an array.</p>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

function transformer (input) {
     const output = {
         // ... construct output from input ...
     };

     return output;
}

const transformed = dataframe.map(transformer);
console.log(transformed.toString());
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>ToT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>transformer: <a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>A user-defined transformer function that transforms each element from the input to generate the output.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe generated by calling the transformer function over each element of the input.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="melt" class="tsd-anchor"></a>
					<h3>melt</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">melt&lt;NewValueT&gt;<span class="tsd-signature-symbol">(</span>idColumnOrColumns<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span>, valueColumnOrColumns<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2423</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Unpivot a DataFrame from wide to long format, optionally leaving identifiers set.
									This is a powerful function that combines grouping, aggregation and sorting.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

// Use column in 'idColumnOrColumns' as the identity column.
// The column name passed in 'valueColumnOrColumns' forms the 'variable' column
// and the values are used to populate the 'value' column of the new dataframe.
const moltenDf = df.melt("A", "B");
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

// Multiple value columns example.
// Similar to the previous example except now the variable column will constitute
// of multiple values.
const moltenDf = df.melt("A", ["B", "C"]);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

// Multiple identity and value columns example.
const moltenDf = df.melt(["A", "B"], ["C", "D"]);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>NewValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>idColumnOrColumns: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Column(s) to use as identifier variables.</p>
									</div>
								</li>
								<li>
									<h5>valueColumnOrColumns: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Column(s) to unpivot.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe that has been unpivoted based on a particular column&#39;s values.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="merge" class="tsd-anchor"></a>
					<h3>merge</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">merge&lt;MergedValueT&gt;<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>otherDataFrames<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">MergedValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:535</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Merge one or more dataframes into this single dataframe.
										Rows are merged by indexed.
									Same named columns in subsequent dataframes override columns in earlier dataframes.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const mergedDF = df1.merge(df2);
</pre>
										<pre>

const mergedDF = df1.merge(df2, df3, etc);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>MergedValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>otherDataFrames: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[]</span></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">MergedValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>The merged data frame.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="none" class="tsd-anchor"></a>
					<h3>none</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">none<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">?: </span><a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1445</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Evaluates a predicate function for every row in the dataframe to determine
									if some condition is true/truthy for <strong>none</strong> of rows in the dataframe.</p>
								</div>
								<p>If no predicate is specified then it simply checks if the dataframe contains zero rows.</p>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const noFreds = df.none(row => row.CustomerName === "Fred"); // Do we have zero customers named Fred?
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const noCustomers = df.none(); // Do we have zero customers?
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> predicate: <a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional predicate function that receives each row. It should return true/truthy for a match, otherwise false/falsy.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
							<p>Returns true if the predicate has returned truthy for zero rows in the dataframe, otherwise returns false. Returns false for an empty dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="orderby" class="tsd-anchor"></a>
					<h3>order<wbr>By</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">order<wbr>By&lt;SortT&gt;<span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SortT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="iordereddataframe.html" class="tsd-signature-type">IOrderedDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SortT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1932</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Sorts the dataframe in ascending order by a value defined by the user-defined selector function.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

// Order sales by amount from least to most.
const orderedDf = salesDf.orderBy(sale => sale.Amount);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>SortT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>selector: <a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SortT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that selects the value to sort by.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="iordereddataframe.html" class="tsd-signature-type">IOrderedDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SortT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe that has been ordered accorrding to the value chosen by the selector function.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="orderbydescending" class="tsd-anchor"></a>
					<h3>order<wbr>ByDescending</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">order<wbr>ByDescending&lt;SortT&gt;<span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SortT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="iordereddataframe.html" class="tsd-signature-type">IOrderedDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SortT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1948</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Sorts the dataframe in descending order by a value defined by the user-defined selector function.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

// Order sales by amount from most to least
const orderedDf = salesDf.orderByDescending(sale => sale.Amount);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>SortT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>selector: <a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SortT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that selects the value to sort by.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="iordereddataframe.html" class="tsd-signature-type">IOrderedDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SortT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe that has been ordered accorrding to the value chosen by the selector function.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="parsedates" class="tsd-anchor"></a>
					<h3>parse<wbr>Dates</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">parse<wbr>Dates<span class="tsd-signature-symbol">(</span>columnNameOrNames<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span>, formatString<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1674</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Parse a column with string values and convert it to a column with date values.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const withParsedColumn = df.parseDates("MyDateColumn");
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const withParsedColumns = df.parseDates(["MyDateColumnA", "MyDateColumnA"]);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnNameOrNames: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>-Specifies the column name or array of column names to parse.</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> formatString: <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional formatting string for dates.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with a particular named column parsed as dates.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="parsefloats" class="tsd-anchor"></a>
					<h3>parse<wbr>Floats</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">parse<wbr>Floats<span class="tsd-signature-symbol">(</span>columnNameOrNames<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1652</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Parse a column with string values and convert it to a column with float values.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const withParsedColumn = df.parseFloats("MyFloatColumn");
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const withParsedColumns = df.parseFloats(["MyFloatColumnA", "MyFloatColumnA"]);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnNameOrNames: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Specifies the column name or array of column names to parse.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with a particular named column parsed as floats.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="parseints" class="tsd-anchor"></a>
					<h3>parse<wbr>Ints</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">parse<wbr>Ints<span class="tsd-signature-symbol">(</span>columnNameOrNames<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1631</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Parse a column with string values and convert it to a column with int values.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const withParsedColumn = df.parseInts("MyIntColumn");
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const withParsedColumns = df.parseInts(["MyIntColumnA", "MyIntColumnA"]);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnNameOrNames: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Specifies the column name or array of column names to parse.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with a particular named column parsed as ints.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="pivot" class="tsd-anchor"></a>
					<h3>pivot</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">pivot&lt;NewValueT&gt;<span class="tsd-signature-symbol">(</span>columnOrColumns<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span>, valueColumnNameOrSpec<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><a href="imulticolumnaggregatorspec.html" class="tsd-signature-type">IMultiColumnAggregatorSpec</a>, aggregator<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">function</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2383</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Reshape (or pivot) a dataframe based on column values.
									This is a powerful function that combines grouping, aggregation and sorting.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

// Simplest example.
// Group by the values in 'PivotColumn'.
// The column 'ValueColumn' is aggregated for each group and this becomes the
// values in the output column.
const pivottedDf = df.pivot("PivotColumn", "ValueColumn", values => values.average());
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

// Multiple input column example.
// Similar to the previous example except now we are aggregating multiple input columns.
// Each group has the average computed for 'ValueColumnA' and the sum for 'ValueColumnB'.
const pivottedDf = df.pivot("PivotColumn", {
     ValueColumnA: aValues => aValues.average(),
     ValueColumnB:  bValues => bValues.sum(),
});
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

// Multiple output column example.
// Similar to the previous example except now we are aggregating multiple outputs for each input column.
// This example produces an output dataframe with columns OutputColumnA, B, C and D.
// OutputColumnA/B are the sum and average of ValueColumnA across each group as defined by PivotColumn.
// OutputColumnC/D are the sum and average of ValueColumnB across each group as defined by PivotColumn.
const pivottedDf = df.pivot("PivotColumn", {
     ValueColumnA: {
         OutputColumnA: aValues => aValues.sum(),
         OutputColumnB: aValues => aValues.average(),
     },
     ValueColumnB: {
         OutputColumnC: bValues => bValues.sum(),
         OutputColumnD: bValues => bValues.average(),
     },
});
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

// Full multi-column example.
// Similar to the previous example, but now we are pivotting on multiple columns.
// We now group by 'PivotColumnA' and then by 'PivotColumnB', effectively creating a
// multi-level nested group.
const pivottedDf = df.pivot(["PivotColumnA", "PivotColumnB" ], {
     ValueColumnA: aValues => aValues.average(),
     ValueColumnB:  bValues => bValues.sum(),
});
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

// To help understand the pivot function, let's expand it out and look at what it does internally.
// Take the simplest example:
const pivottedDf = df.pivot("PivotColumn", "ValueColumn", values => values.average());

// If we expand out the internals of the pivot function, it will look something like this:
const pivottedDf = df.groupBy(row => row.PivotColumn)
         .select(group => ({
             PivotColumn: group.first().PivotColumn,
             ValueColumn: group.deflate(row => row.ValueColumn).average()
         }))
         .orderBy(row  => row.PivotColumn);

// You can see that pivoting a dataframe is the same as grouping, aggregating and sorting it.
// Does pivoting seem simpler now?

// It gets more complicated than that of course, because the pivot function supports multi-level nested
// grouping and aggregation of multiple columns. So a full expansion of the pivot function is rather complex.
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>NewValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnOrColumns: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Column name whose values make the new DataFrame&#39;s columns.</p>
									</div>
								</li>
								<li>
									<h5>valueColumnNameOrSpec: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><a href="imulticolumnaggregatorspec.html" class="tsd-signature-type">IMultiColumnAggregatorSpec</a></h5>
									<div class="tsd-comment tsd-typography">
										<p>Column name or column spec that defines the columns whose values should be aggregated.</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> aggregator: <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">function</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional function used to aggregate pivotted vales.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe that has been pivoted based on a particular column&#39;s values.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="reduce" class="tsd-anchor"></a>
					<h3>reduce</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">reduce&lt;ToT&gt;<span class="tsd-signature-symbol">(</span>reducer<span class="tsd-signature-symbol">: </span><a href="../index.html#aggregatefn" class="tsd-signature-type">AggregateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span>, seed<span class="tsd-signature-symbol">?: </span><a href="" class="tsd-signature-type">ToT</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ToT</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1138</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Reduces the values in the dataframe to a single result.</p>
								</div>
								<p>This is the same concept as the JavaScript function <code>Array.reduce</code> but reduces a dataframe rather than an array.</p>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const dailyRecords = ... daily records for the past month ...
const totalSales = dailyRecords.reduce(
     (accumulator, row) => accumulator + row.salesAmount, // Reducer function.
     0  // Seed value, the starting value.
);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const previousSales = 500; // We'll seed the reduction with this value.
const dailyRecords = ... daily records for the past month ...
const updatedSales = dailyRecords.reduce(
     (accumulator, row) => accumulator + row.salesAmount,
     previousSales
);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>ToT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>reducer: <a href="../index.html#aggregatefn" class="tsd-signature-type">AggregateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Function that takes the seed and then each value in the dataframe and produces the reduced value.</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> seed: <a href="" class="tsd-signature-type">ToT</a></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional initial value, if not specifed the first value in the dataframe is used as the initial value.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ToT</span></h4>
							<p>Returns a value that has been reduced from the input dataframe by passing each element through the reducer function.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="renameseries" class="tsd-anchor"></a>
					<h3>rename<wbr>Series</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">rename<wbr>Series&lt;NewValueT&gt;<span class="tsd-signature-symbol">(</span>newColumnNames<span class="tsd-signature-symbol">: </span><a href="icolumnrenamespec.html" class="tsd-signature-type">IColumnRenameSpec</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:686</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Create a new dataframe with 1 or more columns renamed.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const renamedDf = df.renameSeries({ OldColumnName, NewColumnName });
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const renamedDf = df.renameSeries({
     Column1: ColumnA,
     Column2: ColumnB
});
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>NewValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>newColumnNames: <a href="icolumnrenamespec.html" class="tsd-signature-type">IColumnRenameSpec</a></h5>
									<div class="tsd-comment tsd-typography">
										<p>A column rename spec - a JavaScript hash that maps existing column names to new column names.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with specified columns renamed.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="reorderseries" class="tsd-anchor"></a>
					<h3>reorder<wbr>Series</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">reorder<wbr>Series&lt;NewValueT&gt;<span class="tsd-signature-symbol">(</span>columnNames<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:624</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Create a new dataframe with columns reordered.
									New column names create new columns (with undefined values), omitting existing column names causes those columns to be dropped.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>
const reorderedDf = df.reorderSeries(["FirstColumn", "SecondColumn", "etc"]);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>NewValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnNames: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Specifies the new order for columns.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with columns reordered according to the order of the array of column names that is passed in.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="resetindex" class="tsd-anchor"></a>
					<h3>reset<wbr>Index</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">reset<wbr>Index<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:418</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Resets the <a href="../classes/index.html">Index</a> of the dataframe back to the default zero-based sequential integer index.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const dfWithResetIndex = df.resetIndex();
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with the <a href="../classes/index.html">Index</a> reset to the default zero-based index.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="reverse" class="tsd-anchor"></a>
					<h3>reverse</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">reverse<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1767</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Gets a new dataframe in reverse order.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const reversed = df.reverse();
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe that is the reverse of the original.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="rollingwindow" class="tsd-anchor"></a>
					<h3>rolling<wbr>Window</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">rolling<wbr>Window<span class="tsd-signature-symbol">(</span>period<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1018</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Partition a dataframe into a <a href="../classes/series.html">Series</a> of <em>rolling data windows</em>.
									Each value in the new series is a rolling chunk of data from the original dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const salesDf = ... // Daily sales data.
const rollingWeeklySales = salesDf.rollingWindow(7); // Get rolling window over weekly sales data.
console.log(rollingWeeklySales.toString());
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>period: <span class="tsd-signature-type">number</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The number of data rows to include in each data window.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new series, each value of which is a rolling chunk of the original dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="round" class="tsd-anchor"></a>
					<h3>round</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">round<span class="tsd-signature-symbol">(</span>numDecimalPlaces<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1741</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Produces a new dataframe with all number values rounded to the specified number of places.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const df = ... your data frame ...
const rounded = df.round(); // Round numbers to two decimal places.
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const df = ... your data frame ...
const rounded = df.round(3); // Round numbers to three decimal places.
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> numDecimalPlaces: <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The number of decimal places, defaults to 2.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with all number values rounded to the specified number of places.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="select" class="tsd-anchor"></a>
					<h3>select</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">select&lt;ToT&gt;<span class="tsd-signature-symbol">(</span>transformer<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:775</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Transforms an input dataframe, generating a new dataframe.
									The transformer function is called for each element of the input and the collection of outputs creates the generated datafarme.</p>
								</div>
								<p><code>select</code> is an alias for <a href="../classes/dataframe.html#map">DataFrame.map</a>.</p>
								<p>This is the same concept as the JavaScript function <code>Array.map</code> but maps over a dataframe rather than an array.</p>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

function transformer (input) {
     const output = {
         // ... construct output from input ...
     };

     return output;
}

const transformed = dataframe.select(transformer);
console.log(transformed.toString());
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>ToT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>transformer: <a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>A user-defined transformer function that transforms each element from the input to generate the output.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe generated by calling the transformer function over each element of the input.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="selectmany" class="tsd-anchor"></a>
					<h3>select<wbr>Many</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">select<wbr>Many&lt;ToT&gt;<span class="tsd-signature-symbol">(</span>transformer<span class="tsd-signature-symbol">: </span><a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:832</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Transforms and flattens an input dataframe, generating a new dataframe.
									The transformer function is called for each value in the input dataframe and produces an array that is then flattened into the generated dataframe.</p>
								</div>
								<p><code>selectMany</code> is an alias for <a href="../classes/dataframe.html#flatmap">DataFrame.flatMap</a>.</p>
								<p>This is the same concept as the JavaScript function <code>Array.flatMap</code> but maps over a dataframe rather than an array.</p>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

function transformer (input) {
     const output = [];
     while (someCondition) {
         // ... generate zero or more outputs from a single input ...
         output.push(... some generated value ...);
     }
     return output;
}

const transformed = dataframe.selectMany(transformer);
console.log(transformed.toString());
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>ToT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>transformer: <a href="../index.html#selectorwithindexfn" class="tsd-signature-type">SelectorWithIndexFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>A user-defined function that transforms each value into an array that is then flattened into the generated dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe generated by calling the transformer function over each element of the input.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="sequentialdistinct" class="tsd-anchor"></a>
					<h3>sequential<wbr>Distinct</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">sequential<wbr>Distinct&lt;ToT&gt;<span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">?: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1061</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Eliminates adjacent duplicate rows.</p>
								</div>
								<p>For each group of adjacent values that are equivalent only returns the last index/row for the group,
								thus adjacent equivalent rows are collapsed down to the last row.</p>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const dfWithDuplicateRowsRemoved = df.sequentialDistinct(row => row.ColumnA);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>ToT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> selector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ToT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional selector function to determine the value used to compare for equivalence.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with groups of adjacent duplicate rows collapsed to a single row per group.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="serialize" class="tsd-anchor"></a>
					<h3>serialize</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">serialize<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2631</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Serialize the dataframe to an ordinary JavaScript data structure.
										The resulting data structure is suitable for further serialization to JSON and can be used to
										transmit a DataFrame and its internal structure over the wire.
									Use the <a href="../classes/dataframe.html#deserialize">deserialize</a> function to later reconstitute the serialized dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const jsDataStructure = df.serialize();
const jsonData = JSON.stringify(jsDataStructure);
console.log(jsonData);
const deserializedJsDataStructure = JSON.parse(jsonData);
const deserializedDf = DataFrame.deserialize(deserializedJsDataStructure); // Reconsituted.
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
							<p>Returns a JavaScript data structure conforming to {@link ISerializedDataFrame} that represents the dataframe and its internal structure.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="setindex" class="tsd-anchor"></a>
					<h3>set<wbr>Index</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">set<wbr>Index&lt;NewIndexT&gt;<span class="tsd-signature-symbol">(</span>columnName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">NewIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:372</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Set a named column as the <a href="../classes/index.html">Index</a> of the dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const indexedDf = df.setIndex("SomeColumn");
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>NewIndexT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnName: <span class="tsd-signature-type">string</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Name of the column to use as the new <a href="../classes/index.html">Index</a> of the returned dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">NewIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with the values of the specified column as the new <a href="../classes/index.html">Index</a>.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="skip" class="tsd-anchor"></a>
					<h3>skip</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">skip<span class="tsd-signature-symbol">(</span>numValues<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1153</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Skip a number of rows in the dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const dfWithRowsSkipped = df.skip(10); // Skip 10 rows in the original dataframe.
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>numValues: <span class="tsd-signature-type">number</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Number of rows to skip.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with the specified number of rows skipped.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="skipuntil" class="tsd-anchor"></a>
					<h3>skip<wbr>Until</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">skip<wbr>Until<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">: </span><a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1183</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Skips values in the dataframe untils a condition evaluates to true or truthy.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const dfWithRowsSkipped = df.skipUntil(row => row.CustomerName === "Fred"); // Skip initial customers until we find Fred.
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>predicate: <a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Return true/truthy to stop skipping rows in the original dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with all initial sequential rows removed until the predicate returned true/truthy.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="skipwhile" class="tsd-anchor"></a>
					<h3>skip<wbr>While</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">skip<wbr>While<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">: </span><a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1168</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Skips values in the dataframe while a condition evaluates to true or truthy.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const dfWithRowsSkipped = df.skipWhile(row => row.CustomerName === "Fred"); // Skip initial customers named Fred.
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>predicate: <a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Returns true/truthy to continue to skip rows in the original dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with all initial sequential rows removed while the predicate returned true/truthy.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="startat" class="tsd-anchor"></a>
					<h3>start<wbr>At</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">start<wbr>At<span class="tsd-signature-symbol">(</span>indexValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1475</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Gets a new dataframe containing all rows starting at and after the specified index value.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const df = new DataFrame({
     index: [0, 1, 2, 3], // This is the default index.
     values: [10, 20, 30, 40],
});

const lastHalf = df.startAt(2);
expect(lastHalf.toArray()).to.eql([30, 40]);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const timeSeriesDf = ... a dataframe indexed by date/time ...

// Get all rows starting at (or after) a particular date.
const allRowsFromStartDate = df.startAt(new Date(2016, 5, 4));
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>indexValue: <span class="tsd-signature-type">IndexT</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The index value at which to start the new dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe containing all rows starting at and after the specified index value.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="subset" class="tsd-anchor"></a>
					<h3>subset</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">subset&lt;NewValueT&gt;<span class="tsd-signature-symbol">(</span>columnNames<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:590</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Create a new dataframe with just a subset of columns.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>
const subsetDf = df.subset(["ColumnA", "ColumnB"]);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>NewValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnNames: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Array of column names to include in the new dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a dataframe with a subset of columns from the original dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="summarize" class="tsd-anchor"></a>
					<h3>summarize</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">summarize&lt;OutputValueT&gt;<span class="tsd-signature-symbol">(</span>spec<span class="tsd-signature-symbol">?: </span><a href="imulticolumnaggregatorspec.html" class="tsd-signature-type">IMultiColumnAggregatorSpec</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">OutputValueT</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2292</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Produces a summary of dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const summary = df.summarize();
console.log(summary);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const summary = df.summarize({ // Summarize using pre-defined functions.
     Column1: Series.sum,
     Column2: Series.average,
     Column3: Series.count,
});
console.log(summary);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const summary = df.summarize({ // Summarize using custom functions.
     Column1: series => series.sum(),
     Column2: series => series.std(),
     ColumnN: whateverFunctionYouWant,
});
console.log(summary);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const summary = df.summarize({ // Multiple output fields per column.
     Column1: {
         OutputField1: Series.sum,
         OutputField2: Series.average,
     },
     Column2: {
         OutputField3: series => series.sum(),
         OutputFieldN: whateverFunctionYouWant,
     },
});
console.log(summary);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>OutputValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> spec: <a href="imulticolumnaggregatorspec.html" class="tsd-signature-type">IMultiColumnAggregatorSpec</a></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional parameter that specifies which columns to aggregate and how to aggregate them. Leave this out to produce a default summary of all columns.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">OutputValueT</span></h4>
							<p>A object with fields that summary the values in the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="tail" class="tsd-anchor"></a>
					<h3>tail</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">tail<span class="tsd-signature-symbol">(</span>numValues<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1322</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Get X rows from the end of the dataframe.
									Pass in a negative value to get all rows at the tail except X rows at the head.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>examples</dt>
									<dd><pre>

const sample = df.tail(12); // Take a sample of 12 rows from the end of the dataframe.
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>numValues: <span class="tsd-signature-type">number</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Number of rows to take.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe that has only the specified number of rows taken from the end of the original dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="take" class="tsd-anchor"></a>
					<h3>take</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">take<span class="tsd-signature-symbol">(</span>numRows<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1198</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Take a number of rows in the dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const dfWithRowsTaken = df.take(15); // Take only the first 15 rows from the original dataframe.
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>numRows: <span class="tsd-signature-type">number</span></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with only the specified number of rows taken from the original dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="takeuntil" class="tsd-anchor"></a>
					<h3>take<wbr>Until</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">take<wbr>Until<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">: </span><a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1228</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Takes values from the dataframe untils a condition evaluates to true or truthy.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const dfWithRowsTaken = df.takeUntil(row => row.CustomerName === "Fred"); // Take all initial customers until we find Fred.
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>predicate: <a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Return true/truthy to stop taking rows in the original dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with only the initial sequential rows taken until the predicate returned true/truthy.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="takewhile" class="tsd-anchor"></a>
					<h3>take<wbr>While</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">take<wbr>While<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">: </span><a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1213</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Takes values from the dataframe while a condition evaluates to true or truthy.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const dfWithRowsTaken = df.takeWhile(row => row.CustomerName === "Fred"); // Take only initial customers named Fred.
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>predicate: <a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Returns true/truthy to continue to take rows from the original dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with only the initial sequential rows that were taken while the predicate returned true/truthy.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="toarray" class="tsd-anchor"></a>
					<h3>to<wbr>Array</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">to<wbr>Array<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">[]</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:701</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Extract rows from the dataframe as an array.
										Each element of the array is one row of the dataframe represented as
										a JavaScript object with the fields as the dataframe&#39;s columns.
									This forces lazy evaluation to complete.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>
const values = df.toArray();
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">[]</span></h4>
							<p>Returns an array of the rows contained within the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="tocsv" class="tsd-anchor"></a>
					<h3>toCSV</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">toCSV<span class="tsd-signature-symbol">(</span>options<span class="tsd-signature-symbol">?: </span><a href="icsvoutputoptions.html" class="tsd-signature-type">ICSVOutputOptions</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2604</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Serialize the dataframe to the CSV data format.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const csvData = df.toCSV();
console.log(csvData);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const csvData = df.toCSV({ header: false });
console.log(csvData);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> options: <a href="icsvoutputoptions.html" class="tsd-signature-type">ICSVOutputOptions</a></h5>
									<div class="tsd-comment tsd-typography">
										<p>Options for CSV output. The options object is passed directly to <a href="https://www.papaparse.com/docs#unparse">PapaParse.unparse</a>, please see <a href="https://www.papaparse.com/docs#unparse-config-default">PapaParse docs for additional options</a>.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
							<p>Returns a string in the CSV data format that represents the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="tohtml" class="tsd-anchor"></a>
					<h3>toHTML</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">toHTML<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2611</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Serialize the dataframe to HTML.</p>
								</div>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
							<p>Returns a string in HTML format that represents the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="tojson" class="tsd-anchor"></a>
					<h3>toJSON</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">toJSON<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2567</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Serialize the dataframe to the JSON data format.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const jsonData = df.toJSON();
console.log(jsonData);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
							<p>Returns a string in the JSON data format that represents the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="tojson5" class="tsd-anchor"></a>
					<h3>toJSON5</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">toJSON5<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2581</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Serialize the dataframe to the JSON5 data format.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const jsonData = df.toJSON5();
console.log(jsonData);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
							<p>Returns a string in the JSON5 data format that represents the dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="toobject" class="tsd-anchor"></a>
					<h3>to<wbr>Object</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">to<wbr>Object&lt;KeyT, FieldT, OutT&gt;<span class="tsd-signature-symbol">(</span>keySelector<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">function</span>, valueSelector<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">function</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">OutT</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:734</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Convert the dataframe to a JavaScript object.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const someObject = df.toObject(
     row => row.SomeColumn, // Specify the column to use for field names in the output object.
     row => row.SomeOtherColumn // Specify the column to use as the value for each field.
);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>KeyT</h4>
								</li>
								<li>
									<h4>FieldT</h4>
								</li>
								<li>
									<h4>OutT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>keySelector: <span class="tsd-signature-type">function</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that selects keys for the resulting object.</p>
									</div>
									<ul class="tsd-parameters">
										<li class="tsd-parameter-siganture">
											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-not-exported">
												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">KeyT</span></li>
											</ul>
											<ul class="tsd-descriptions">
												<li class="tsd-description">
													<h4 class="tsd-parameters-title">Parameters</h4>
													<ul class="tsd-parameters">
														<li>
															<h5>value: <span class="tsd-signature-type">ValueT</span></h5>
														</li>
													</ul>
													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">KeyT</span></h4>
												</li>
											</ul>
										</li>
									</ul>
								</li>
								<li>
									<h5>valueSelector: <span class="tsd-signature-type">function</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined selector function that selects values for the resulting object.</p>
									</div>
									<ul class="tsd-parameters">
										<li class="tsd-parameter-siganture">
											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-not-exported">
												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">FieldT</span></li>
											</ul>
											<ul class="tsd-descriptions">
												<li class="tsd-description">
													<h4 class="tsd-parameters-title">Parameters</h4>
													<ul class="tsd-parameters">
														<li>
															<h5>value: <span class="tsd-signature-type">ValueT</span></h5>
														</li>
													</ul>
													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">FieldT</span></h4>
												</li>
											</ul>
										</li>
									</ul>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">OutT</span></h4>
							<p>Returns a JavaScript object generated from the dataframe by applying the key and value selector functions.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="topairs" class="tsd-anchor"></a>
					<h3>to<wbr>Pairs</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">to<wbr>Pairs<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Object</span><span class="tsd-signature-symbol">[]</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:715</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Retreive the index, row pairs from the dataframe as an array.
										Each pair is [index, row].
									This forces lazy evaluation to complete.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>
const pairs = df.toPairs();
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Object</span><span class="tsd-signature-symbol">[]</span></h4>
							<p>Returns an array of pairs that contains the dataframe&#39;s rows. Each pair is a two element array that contains an index and a row.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="torows" class="tsd-anchor"></a>
					<h3>to<wbr>Rows</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">to<wbr>Rows<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">[]</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:746</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Bake the data frame to an array of rows were each rows is an array of values in column order.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>
const rows = df.toRows();
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">[]</span></h4>
							<p>Returns an array of rows. Each row is an array of values in column order.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="tostring" class="tsd-anchor"></a>
					<h3>to<wbr>String</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">to<wbr>String<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1610</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Format the dataframe for display as a string.
									This forces lazy evaluation to complete.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

console.log(df.toString());
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
							<p>Generates and returns a string representation of the dataframe or dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="tostrings" class="tsd-anchor"></a>
					<h3>to<wbr>Strings</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">to<wbr>Strings<span class="tsd-signature-symbol">(</span>columnNames<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><a href="iformatspec.html" class="tsd-signature-type">IFormatSpec</a>, formatString<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1702</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Convert a column of values of different types to a column of string values.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const withStringColumn = df.toStrings("MyDateColumn", "YYYY-MM-DD");
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const withStringColumn = df.toStrings("MyFloatColumn", "0.00");
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnNames: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><a href="iformatspec.html" class="tsd-signature-type">IFormatSpec</a></h5>
									<div class="tsd-comment tsd-typography">
										<p>Specifies the column name or array of column names to convert to strings. Can also be a format spec that specifies which columns to convert and what their format should be.</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> formatString: <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional formatting string for dates.</p>
										<p>Numeral.js is used for number formatting.
										<a href="http://numeraljs.com/">http://numeraljs.com/</a></p>
										<p>Moment is used for date formatting.
										<a href="https://momentjs.com/docs/#/parsing/string-format/">https://momentjs.com/docs/#/parsing/string-format/</a></p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with a particular named column convert to strings.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="transformseries" class="tsd-anchor"></a>
					<h3>transform<wbr>Series</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">transform<wbr>Series&lt;NewValueT&gt;<span class="tsd-signature-symbol">(</span>columnSelectors<span class="tsd-signature-symbol">: </span><a href="icolumntransformspec.html" class="tsd-signature-type">IColumnTransformSpec</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:889</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Transform one or more columns.</p>
								</div>
								<p>This is equivalent to extracting a <a href="../classes/series.html">Series</a> with <a href="idataframe.html#getseries">getSeries</a>, then transforming it with <a href="../classes/series.html#select">Series.select</a>,
								and finally plugging it back in as the same column using <a href="idataframe.html#withseries">withSeries</a>.</p>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const modifiedDf = df.transformSeries({
     AColumnToTransform: columnValue => transformRow(columnValue)
});
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const modifiedDf = df.transformSeries({
     ColumnA: columnValue => transformColumnA(columnValue),
     ColumnB: columnValue => transformColumnB(columnValue)
});
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>NewValueT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>columnSelectors: <a href="icolumntransformspec.html" class="tsd-signature-type">IColumnTransformSpec</a></h5>
									<div class="tsd-comment tsd-typography">
										<p>Object with field names for each column to be transformed. Each field specifies a selector function that transforms that column.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with 1 or more columns transformed.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="truncatestrings" class="tsd-anchor"></a>
					<h3>truncate<wbr>Strings</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">truncate<wbr>Strings<span class="tsd-signature-symbol">(</span>maxLength<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1718</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Produces a new dataframe with all string values truncated to the requested maximum length.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

// Truncate all string columns to 100 characters maximum.
const truncatedDf = df.truncateString(100);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>maxLength: <span class="tsd-signature-type">number</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The maximum length of the string values after truncation.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with all strings truncated to the specified maximum length.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="union" class="tsd-anchor"></a>
					<h3>union</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">union&lt;KeyT&gt;<span class="tsd-signature-symbol">(</span>other<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span>, selector<span class="tsd-signature-symbol">?: </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:2000</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Creates a new dataframe by merging two input dataframes.
										The resulting dataframe contains the union of rows from the two input dataframes.
										These are the unique combination of rows in both dataframe.
									This is basically a concatenation and then elimination of duplicates.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const dfA = ...
const dfB = ...
const merged = dfA.union(dfB);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

// Merge two sets of customer records that may contain the same
// customer record in each set. This is basically a concatenation
// of the dataframes and then an elimination of any duplicate records
// that result.
const customerRecordsA = ...
const customerRecordsB = ...
const mergedCustomerRecords = customerRecordsA.union(
     customerRecordsB,
     customerRecord => customerRecord.CustomerId
);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

// Note that you can achieve the exact same result as the previous
// example by doing a {@link DataFrame.concat) and {@link DataFrame.distinct}
// of the dataframes and then an elimination of any duplicate records
// that result.
const customerRecordsA = ...
const customerRecordsB = ...
const mergedCustomerRecords = customerRecordsA
     .concat(customerRecordsB)
     .distinct(customerRecord => customerRecord.CustomerId);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>KeyT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>other: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The other dataframes to merge.</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> selector: <a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">KeyT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Optional user-defined selector function that selects the value to compare to determine distinctness.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns the union of the two dataframes.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="variablewindow" class="tsd-anchor"></a>
					<h3>variable<wbr>Window</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">variable<wbr>Window<span class="tsd-signature-symbol">(</span>comparer<span class="tsd-signature-symbol">: </span><a href="../index.html#comparerfn" class="tsd-signature-type">ComparerFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1043</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Partition a dataframe into a <a href="../classes/series.html">Series</a> of variable-length <em>data windows</em>
										where the divisions between the data chunks are
									defined by a user-provided <em>comparer</em> function.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

function rowComparer (rowA, rowB) {
     if (... rowA should be in the same data window as rowB ...) {
         return true;
     }
     else {
         return false;
     }
};

const variableWindows = df.variableWindow(rowComparer);
</dd>
                </dl>
        </div>


    <h4 class="tsd-parameters-title">Parameters</h4>
    <ul class="tsd-parameters">
            <li>
                <h5>comparer: <a href="../index.html#comparerfn" class="tsd-signature-type">ComparerFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>

                        <div class="tsd-comment tsd-typography">
                <p>Function that compares two adjacent data rows and returns true if they should be in the same window.</p>

        </div>

            </li>
    </ul>

    <h4 class="tsd-returns-title">Returns <a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></h4>

        <p>Returns a new series, each value of which is a chunk of data from the original dataframe.</p>


        </li>
</ul>    

</section>
                <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
    <a name="where" class="tsd-anchor"></a>
        <h3>where</h3>

        <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
        <li class="tsd-signature tsd-kind-icon">where<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">: </span><a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>

<ul class="tsd-descriptions">
        <li class="tsd-description">
                <aside class="tsd-sources">
        <ul>
                    <li>Defined in lib/dataframe.ts:1343</li>
        </ul>
</aside>
        <div class="tsd-comment tsd-typography">
                <div class="lead">
                    <p>Filter the dataframe through a user-defined predicate function.</p>

                </div>
                <p><code>where</code> is an alias for <a href="../classes/dataframe.html#filter">DataFrame.filter</a>.</p>
<p>This is the same concept as the JavaScript function <code>Array.filter</code> but filters a dataframe rather than an array.</p>

                <dl class="tsd-comment-tags">
                        <dt>example</dt>
                        <dd><pre>

// Filter so we only have sales figures greater than 100.
const filtered = dataframe.where(row => row.salesFigure > 100);
console.log(filtered.toArray());
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>predicate: <a href="../index.html#predicatefn" class="tsd-signature-type">PredicateFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Predicate function to filter values from the dataframe. Returns true/truthy to keep elements, or false/falsy to omit elements.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe containing only the values from the original dataframe that matched the predicate.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="window" class="tsd-anchor"></a>
					<h3>window</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">window<span class="tsd-signature-symbol">(</span>period<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1000</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Partition a dataframe into a <a href="../classes/series.html">Series</a> of <em>data windows</em>.
									Each value in the new series is a chunk of data from the original dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const windows = df.window(2); // Get rows in pairs.
const pctIncrease = windows.select(pair => (pair.last().SalesAmount - pair.first().SalesAmount) / pair.first().SalesAmount);
console.log(pctIncrease.toString());
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const salesDf = ... // Daily sales data.
const weeklySales = salesDf.window(7); // Partition up into weekly data sets.
console.log(weeklySales.toString());
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>period: <span class="tsd-signature-type">number</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The number of rows to include in each data window.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new series, each value of which is a chunk (data window) of the original dataframe.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="withindex" class="tsd-anchor"></a>
					<h3>with<wbr>Index</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">with<wbr>Index&lt;NewIndexT&gt;<span class="tsd-signature-symbol">(</span>newIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">NewIndexT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewIndexT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">NewIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:405</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Apply a new <a href="../classes/index.html">Index</a> to the dataframe.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const indexedDf = df.withIndex([10, 20, 30]);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const indexedDf = df.withIndex(df.getSeries("SomeColumn"));
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const indexedDf = df.withIndex(row => row.SomeColumn);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const indexedDf = df.withIndex(row => row.SomeColumn + 20);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>NewIndexT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>newIndex: <span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">NewIndexT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><a href="../index.html#selectorfn" class="tsd-signature-type">SelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">NewIndexT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>The new array or iterable to be the new <a href="../classes/index.html">Index</a> of the dataframe. Can also be a selector to choose the <a href="../classes/index.html">Index</a> for each row in the dataframe.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">NewIndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a new dataframe with the specified <a href="../classes/index.html">Index</a> attached.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="withseries" class="tsd-anchor"></a>
					<h3>with<wbr>Series</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">with<wbr>Series&lt;OutputValueT, SeriesValueT&gt;<span class="tsd-signature-symbol">(</span>columnNameOrSpec<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><a href="icolumngenspec.html" class="tsd-signature-type">IColumnGenSpec</a>, series<span class="tsd-signature-symbol">?: </span><a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SeriesValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><a href="../index.html#seriesselectorfn" class="tsd-signature-type">SeriesSelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SeriesValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">OutputValueT</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:513</li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Create a new dataframe with a replaced or additional column specified by the passed-in series.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre>

const modifiedDf = df.withSeries("ANewColumn", new Series([1, 2, 3]));
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const modifiedDf = df.withSeries("ANewColumn", df =>
     df.getSeries("SourceData").select(aTransformation)
);
</pre>
									</dd>
									<dt>example</dt>
									<dd><pre>

const modifiedDf = df.withSeries({
     ANewColumn: new Series([1, 2, 3]),
     SomeOtherColumn: new Series([10, 20, 30])
});
<pre>
</dd>
                        <dt>example</dt>
                        <dd><pre>

const modifiedDf = df.withSeries({
     ANewColumn: df => df.getSeries("SourceData").select(aTransformation))
});
<pre>
</dd>
                </dl>
        </div>

    <h4 class="tsd-type-parameters-title">Type parameters</h4>
    <ul class="tsd-type-parameters">
        <li>
            <h4>OutputValueT</h4>
                    </li>
        <li>
            <h4>SeriesValueT</h4>
                    </li>
</ul>
    <h4 class="tsd-parameters-title">Parameters</h4>
    <ul class="tsd-parameters">
            <li>
                <h5>columnNameOrSpec: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><a href="icolumngenspec.html" class="tsd-signature-type">IColumnGenSpec</a></h5>

                        <div class="tsd-comment tsd-typography">
                <p>The name of the column to add or replace or a <a href="icolumngenspec.html">IColumnGenSpec</a> that defines the columns to add.</p>

        </div>

            </li>
            <li>
                <h5><span class="tsd-flag ts-flagOptional">Optional</span> series: <a href="iseries.html" class="tsd-signature-type">ISeries</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SeriesValueT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><a href="../index.html#seriesselectorfn" class="tsd-signature-type">SeriesSelectorFn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SeriesValueT</span><span class="tsd-signature-symbol">&gt;</span></h5>

                        <div class="tsd-comment tsd-typography">
                <p>When columnNameOrSpec is a string that identifies the column to add, this specifies the <a href="../classes/series.html">Series</a> to add to the dataframe or a function that produces a series (given a dataframe).</p>

        </div>

            </li>
    </ul>

    <h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">OutputValueT</span><span class="tsd-signature-symbol">&gt;</span></h4>

        <p>Returns a new dataframe replacing or adding a particular named column.</p>


        </li>
</ul>    

</section>
                <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
    <a name="zip" class="tsd-anchor"></a>
        <h3>zip</h3>

        <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
        <li class="tsd-signature tsd-kind-icon">zip&lt;Index2T, Value2T, ResultT&gt;<span class="tsd-signature-symbol">(</span>s2<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Index2T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value2T</span><span class="tsd-signature-symbol">&gt;</span>, zipper<span class="tsd-signature-symbol">: </span><a href="../index.html#zip2fn" class="tsd-signature-type">Zip2Fn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value2T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span></li>
        <li class="tsd-signature tsd-kind-icon">zip&lt;Index2T, Value2T, Index3T, Value3T, ResultT&gt;<span class="tsd-signature-symbol">(</span>s2<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Index2T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value2T</span><span class="tsd-signature-symbol">&gt;</span>, s3<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Index3T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value3T</span><span class="tsd-signature-symbol">&gt;</span>, zipper<span class="tsd-signature-symbol">: </span><a href="../index.html#zip3fn" class="tsd-signature-type">Zip3Fn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value2T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value3T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span></li>
        <li class="tsd-signature tsd-kind-icon">zip&lt;Index2T, Value2T, Index3T, Value3T, Index4T, Value4T, ResultT&gt;<span class="tsd-signature-symbol">(</span>s2<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Index2T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value2T</span><span class="tsd-signature-symbol">&gt;</span>, s3<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Index3T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value3T</span><span class="tsd-signature-symbol">&gt;</span>, s4<span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Index4T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value4T</span><span class="tsd-signature-symbol">&gt;</span>, zipper<span class="tsd-signature-symbol">: </span><a href="../index.html#zip3fn" class="tsd-signature-type">Zip3Fn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value2T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value3T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span></li>
        <li class="tsd-signature tsd-kind-icon">zip&lt;ResultT&gt;<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>

<ul class="tsd-descriptions">
        <li class="tsd-description">
                <aside class="tsd-sources">
        <ul>
                    <li>Defined in lib/dataframe.ts:1913</li>
        </ul>
</aside>
        <div class="tsd-comment tsd-typography">
                <div class="lead">
                    <p>Merge together multiple dataframes to create a new dataframe.
Preserves the index of the first dataframe.</p>

                </div>
                <dl class="tsd-comment-tags">
                        <dt>example</dt>
                        <dd><pre>

function produceNewRow (rowA, rowB) {
      const outputRow = {
          ValueA: rowA.Value,
          ValueB: rowB.Value,
      };
      return outputRow;
}

const dfA = new DataFrame([ { Value: 10 }, { Value: 20 }, { Value: 30 }]);
const dfB = new DataFrame([ { Value: 100 }, { Value: 200 }, { Value: 300 }]);
const zippedDf = dfA.zip(dfB, produceNewRow);
</pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>Index2T</h4>
								</li>
								<li>
									<h4>Value2T</h4>
								</li>
								<li>
									<h4>ResultT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>s2: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Index2T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value2T</span><span class="tsd-signature-symbol">&gt;</span></h5>
								</li>
								<li>
									<h5>zipper: <a href="../index.html#zip2fn" class="tsd-signature-type">Zip2Fn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value2T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>User-defined zipper function that merges rows. It produces rows for the new dataframe based-on rows from the input dataframes.</p>
									</div>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns a single dataframe merged from multiple input dataframes.</p>
						</li>
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1914</li>
								</ul>
							</aside>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>Index2T</h4>
								</li>
								<li>
									<h4>Value2T</h4>
								</li>
								<li>
									<h4>Index3T</h4>
								</li>
								<li>
									<h4>Value3T</h4>
								</li>
								<li>
									<h4>ResultT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>s2: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Index2T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value2T</span><span class="tsd-signature-symbol">&gt;</span></h5>
								</li>
								<li>
									<h5>s3: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Index3T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value3T</span><span class="tsd-signature-symbol">&gt;</span></h5>
								</li>
								<li>
									<h5>zipper: <a href="../index.html#zip3fn" class="tsd-signature-type">Zip3Fn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value2T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value3T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span></h4>
						</li>
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1915</li>
								</ul>
							</aside>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>Index2T</h4>
								</li>
								<li>
									<h4>Value2T</h4>
								</li>
								<li>
									<h4>Index3T</h4>
								</li>
								<li>
									<h4>Value3T</h4>
								</li>
								<li>
									<h4>Index4T</h4>
								</li>
								<li>
									<h4>Value4T</h4>
								</li>
								<li>
									<h4>ResultT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>s2: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Index2T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value2T</span><span class="tsd-signature-symbol">&gt;</span></h5>
								</li>
								<li>
									<h5>s3: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Index3T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value3T</span><span class="tsd-signature-symbol">&gt;</span></h5>
								</li>
								<li>
									<h5>s4: <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Index4T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value4T</span><span class="tsd-signature-symbol">&gt;</span></h5>
								</li>
								<li>
									<h5>zipper: <a href="../index.html#zip3fn" class="tsd-signature-type">Zip3Fn</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ValueT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value2T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Value3T</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span></h4>
						</li>
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in lib/dataframe.ts:1916</li>
								</ul>
							</aside>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>ResultT</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>args: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="idataframe.html" class="tsd-signature-type">IDataFrame</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">IndexT</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">ResultT</span><span class="tsd-signature-symbol">&gt;</span></h4>
						</li>
					</ul>
				</section>
			</section>
		</div>
		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
			<nav class="tsd-navigation primary">
				<ul>
					<li class="globals  ">
						<a href="../index.html"><em>Globals</em></a>
					</li>
				</ul>
			</nav>
			<nav class="tsd-navigation secondary menu-sticky">
				<ul class="before-current">
				</ul>
				<ul class="current">
					<li class="current tsd-kind-interface tsd-has-type-parameter">
						<a href="idataframe.html" class="tsd-kind-icon">IData<wbr>Frame</a>
						<ul>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite">
								<a href="idataframe.html#___iterator" class="tsd-kind-icon">__@iterator</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#after" class="tsd-kind-icon">after</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#aggregate" class="tsd-kind-icon">aggregate</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#all" class="tsd-kind-icon">all</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#any" class="tsd-kind-icon">any</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#appendpair" class="tsd-kind-icon">append<wbr>Pair</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#at" class="tsd-kind-icon">at</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#bake" class="tsd-kind-icon">bake</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#before" class="tsd-kind-icon">before</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#between" class="tsd-kind-icon">between</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#bringtoback" class="tsd-kind-icon">bring<wbr>ToBack</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#bringtofront" class="tsd-kind-icon">bring<wbr>ToFront</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#cast" class="tsd-kind-icon">cast</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#concat" class="tsd-kind-icon">concat</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#count" class="tsd-kind-icon">count</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#defaultifempty" class="tsd-kind-icon">default<wbr>IfEmpty</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#deflate" class="tsd-kind-icon">deflate</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#detecttypes" class="tsd-kind-icon">detect<wbr>Types</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#detectvalues" class="tsd-kind-icon">detect<wbr>Values</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#distinct" class="tsd-kind-icon">distinct</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#dropseries" class="tsd-kind-icon">drop<wbr>Series</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#endat" class="tsd-kind-icon">end<wbr>At</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#ensureseries" class="tsd-kind-icon">ensure<wbr>Series</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#except" class="tsd-kind-icon">except</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#expectseries" class="tsd-kind-icon">expect<wbr>Series</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#fillgaps" class="tsd-kind-icon">fill<wbr>Gaps</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#filter" class="tsd-kind-icon">filter</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#first" class="tsd-kind-icon">first</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#flatmap" class="tsd-kind-icon">flat<wbr>Map</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#foreach" class="tsd-kind-icon">for<wbr>Each</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#generateseries" class="tsd-kind-icon">generate<wbr>Series</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#getcolumnnames" class="tsd-kind-icon">get<wbr>Column<wbr>Names</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#getcolumns" class="tsd-kind-icon">get<wbr>Columns</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#getindex" class="tsd-kind-icon">get<wbr>Index</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#getseries" class="tsd-kind-icon">get<wbr>Series</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#groupby" class="tsd-kind-icon">group<wbr>By</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#groupsequentialby" class="tsd-kind-icon">group<wbr>Sequential<wbr>By</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#hasseries" class="tsd-kind-icon">has<wbr>Series</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#head" class="tsd-kind-icon">head</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#inflateseries" class="tsd-kind-icon">inflate<wbr>Series</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#insertpair" class="tsd-kind-icon">insert<wbr>Pair</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#intersection" class="tsd-kind-icon">intersection</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#join" class="tsd-kind-icon">join</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#joinouter" class="tsd-kind-icon">join<wbr>Outer</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#joinouterleft" class="tsd-kind-icon">join<wbr>Outer<wbr>Left</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#joinouterright" class="tsd-kind-icon">join<wbr>Outer<wbr>Right</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#last" class="tsd-kind-icon">last</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#map" class="tsd-kind-icon">map</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#melt" class="tsd-kind-icon">melt</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#merge" class="tsd-kind-icon">merge</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#none" class="tsd-kind-icon">none</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#orderby" class="tsd-kind-icon">order<wbr>By</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#orderbydescending" class="tsd-kind-icon">order<wbr>ByDescending</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#parsedates" class="tsd-kind-icon">parse<wbr>Dates</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#parsefloats" class="tsd-kind-icon">parse<wbr>Floats</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#parseints" class="tsd-kind-icon">parse<wbr>Ints</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#pivot" class="tsd-kind-icon">pivot</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#reduce" class="tsd-kind-icon">reduce</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#renameseries" class="tsd-kind-icon">rename<wbr>Series</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#reorderseries" class="tsd-kind-icon">reorder<wbr>Series</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#resetindex" class="tsd-kind-icon">reset<wbr>Index</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#reverse" class="tsd-kind-icon">reverse</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#rollingwindow" class="tsd-kind-icon">rolling<wbr>Window</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#round" class="tsd-kind-icon">round</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#select" class="tsd-kind-icon">select</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#selectmany" class="tsd-kind-icon">select<wbr>Many</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#sequentialdistinct" class="tsd-kind-icon">sequential<wbr>Distinct</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#serialize" class="tsd-kind-icon">serialize</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#setindex" class="tsd-kind-icon">set<wbr>Index</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#skip" class="tsd-kind-icon">skip</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#skipuntil" class="tsd-kind-icon">skip<wbr>Until</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#skipwhile" class="tsd-kind-icon">skip<wbr>While</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#startat" class="tsd-kind-icon">start<wbr>At</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#subset" class="tsd-kind-icon">subset</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#summarize" class="tsd-kind-icon">summarize</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#tail" class="tsd-kind-icon">tail</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#take" class="tsd-kind-icon">take</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#takeuntil" class="tsd-kind-icon">take<wbr>Until</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#takewhile" class="tsd-kind-icon">take<wbr>While</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#toarray" class="tsd-kind-icon">to<wbr>Array</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#tocsv" class="tsd-kind-icon">toCSV</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#tohtml" class="tsd-kind-icon">toHTML</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#tojson" class="tsd-kind-icon">toJSON</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#tojson5" class="tsd-kind-icon">toJSON5</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#toobject" class="tsd-kind-icon">to<wbr>Object</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#topairs" class="tsd-kind-icon">to<wbr>Pairs</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#torows" class="tsd-kind-icon">to<wbr>Rows</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#tostring" class="tsd-kind-icon">to<wbr>String</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#tostrings" class="tsd-kind-icon">to<wbr>Strings</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#transformseries" class="tsd-kind-icon">transform<wbr>Series</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#truncatestrings" class="tsd-kind-icon">truncate<wbr>Strings</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#union" class="tsd-kind-icon">union</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#variablewindow" class="tsd-kind-icon">variable<wbr>Window</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#where" class="tsd-kind-icon">where</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="idataframe.html#window" class="tsd-kind-icon">window</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#withindex" class="tsd-kind-icon">with<wbr>Index</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#withseries" class="tsd-kind-icon">with<wbr>Series</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="idataframe.html#zip" class="tsd-kind-icon">zip</a>
							</li>
						</ul>
					</li>
				</ul>
				<ul class="after-current">
				</ul>
			</nav>
		</div>
	</div>
</div>
<footer class="with-border-bottom">
	<div class="container">
		<h2>Legend</h2>
		<div class="tsd-legend-group">
			<ul class="tsd-legend">
				<li class="tsd-kind-module"><span class="tsd-kind-icon">Module</span></li>
				<li class="tsd-kind-object-literal"><span class="tsd-kind-icon">Object literal</span></li>
				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
				<li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li>
				<li class="tsd-kind-index-signature"><span class="tsd-kind-icon">Index signature</span></li>
				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
				<li class="tsd-kind-type-alias tsd-has-type-parameter"><span class="tsd-kind-icon">Type alias with type parameter</span></li>
			</ul>
			<ul class="tsd-legend">
				<li class="tsd-kind-enum"><span class="tsd-kind-icon">Enumeration</span></li>
				<li class="tsd-kind-enum-member"><span class="tsd-kind-icon">Enumeration member</span></li>
				<li class="tsd-kind-property tsd-parent-kind-enum"><span class="tsd-kind-icon">Property</span></li>
				<li class="tsd-kind-method tsd-parent-kind-enum"><span class="tsd-kind-icon">Method</span></li>
			</ul>
			<ul class="tsd-legend">
				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
				<li class="tsd-kind-interface tsd-has-type-parameter"><span class="tsd-kind-icon">Interface with type parameter</span></li>
				<li class="tsd-kind-constructor tsd-parent-kind-interface"><span class="tsd-kind-icon">Constructor</span></li>
				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
				<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
				<li class="tsd-kind-index-signature tsd-parent-kind-interface"><span class="tsd-kind-icon">Index signature</span></li>
			</ul>
			<ul class="tsd-legend">
				<li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
				<li class="tsd-kind-class tsd-has-type-parameter"><span class="tsd-kind-icon">Class with type parameter</span></li>
				<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
				<li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li>
				<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
				<li class="tsd-kind-accessor tsd-parent-kind-class"><span class="tsd-kind-icon">Accessor</span></li>
				<li class="tsd-kind-index-signature tsd-parent-kind-class"><span class="tsd-kind-icon">Index signature</span></li>
			</ul>
			<ul class="tsd-legend">
				<li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li>
				<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited property</span></li>
				<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited method</span></li>
				<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited accessor</span></li>
			</ul>
			<ul class="tsd-legend">
				<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected property</span></li>
				<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected method</span></li>
				<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected accessor</span></li>
			</ul>
			<ul class="tsd-legend">
				<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li>
				<li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private method</span></li>
				<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private accessor</span></li>
			</ul>
			<ul class="tsd-legend">
				<li class="tsd-kind-property tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static property</span></li>
				<li class="tsd-kind-call-signature tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li>
			</ul>
		</div>
	</div>
</footer>
<div class="container tsd-generator">
	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
<script>if (location.protocol == 'file:') document.write('<script src="../assets/js/search.js"><' + '/script>');</script>
</body>
</html>